1

Webページのデータを返すnode.jsJSONPサーバーがあります。このページはノードサーバーにAJAXリクエストを送信し、JSONPコードを取得します。

圧縮を有効にするまで、これはすべてのブラウザで完全に機能しています。deflateまたはgzip圧縮でAJAX応答を返すと、IE9を除くすべてのユーザーで機能します。これはファイルをデコードしません。IEは、空白の本文が戻ってくることを示しているだけで、エラーはなく、コンソールに出力もありません。

リクエストが通過し、適切なデータがIEクライアントに返されることを確認しましたが、IEはそれを受け入れません。すべてのクライアントに送信される応答ヘッダーは次のとおりです。

 Access-Control-Allow-Origin:*
 Connection:keep-alive
 Content-Encoding:deflate
 Content-Length:31203
 Content-Type:application/javascript; charset=UTF-8
 X-Content-Type-Options:nosniff

追加する必要があります-これらのヘッダーは他のブラウザーに表示されますが、IEには「Content-Encoding:ヘッダー」が表示されません。圧縮が有効になっていてIEで動作するWebサイトでも同じ動作に気付いたため、これは正常であると思います。IBMたとえば、.com-Chromeはコンテンツエンコーディングを表示しますが、IEは表示しません。

では、IEは圧縮をサポートしておらず、他のサーバーがそれを検出していますか?IEがこのデータを拒否する理由を誰かが知っていますか?

乾杯、

ホワイトアトム

4

1 に答える 1

0

Apacheは、IEをスニッフィングし、HTTP1.1の代わりにHTTP1.0を使用するように設定されている場合があります。サイトがHTTPSを使用している場合、IISは圧縮を許可しません。関連する質問も役立つ場合があります。

于 2012-08-11T03:25:21.780 に答える