AJAX、IE、およびCP1251

ここで何らかの形でajaxで何かを行い、データをJSON



転送しcp1251



。サイト上のすべてのエンコーディングはcp1251



です。 車輪を再発明しないために、 jQuery



使用しました。

IE



すべてをテストすることを決定するまで、すべてが正常に機能しました。 IE



私は7番目のバージョンを持っています、私はまだ他でそれをテストしていませんが、私の意見では同じ機能があります。

したがって、エラーなしで機能するものはありません(目に見える)。 駆け巡り、 jQuery



parsererror



返すことがparsererror



。 さらに詳しく調べてみると、 responseXML



フィールドにアクセスするとトランスポートがアクセスに失敗し、 responseText



フィールドに空のドキュメントが含まれていることがわかりました(当然、データはテキストで送信されます)。

ジグソーパズルとグーグルで約30分働いた後、私はそれを見つけました:

  1. ヘッダーのエンコードがutf-8



    ない場合、 IE



    絶対に動作しません。

    コンテンツタイプapplication/ajax



    およびapplication/x-javascript



    も制御されません。



    一般的に、最終的に、ヘッダーContent-type: text/plain; charset=utf-8



    を生成し始めましたContent-type: text/plain; charset=utf-8



    Content-type: text/plain; charset=utf-8



    およびすべてをutf-8



    トランスコードします( iconv



    で3行で出力されます)。

    いいえ、 IE



    確かに同じcp1251



    エンコーディングの友人でIE



    ないことを読んでいますが、今のところ私はそれを理解しました;)

    みんな! 他人の間違いを繰り返さないでください:)

    UPD



    うーん、私の頭に灰を振りかけます。 cp1251



    エンコーディングをwindows-1251



    置き換えることで、すべてが非常によく修正されていることが判明しました:)ヒントをありがとう。



All Articles