22

gzip/収縮したデータを出力することをいとわないWebサービスがあります。サービスが生のJSONまたはwgetとcurlを使用してgzipで圧縮されたJSONで応答することを確認しました。

jQueryAJAX呼び出しを使用してこのWebサービスを利用したいと思います。

デフォルトでは、jQueryが提供する$ .ajax呼び出しは、Webサーバーがgzip圧縮されたデータで応答するために必要な「Accept-Encoding:gzip」HTTP要求ヘッダーを追加しません。

ただし、jQuery独自のメソッドを使用してヘッダーを追加すると、次のようになります。

$.ajax({url: 'http://foo.com/service.json',
        beforeSend: function(xhr) { 
            console.log('xhr set'); 
            xhr.setRequestHeader('Accept-Encoding', 'deflate') 
       } 
});

次に、ブラウザコンソールに次のエラーが表示されます。

Refused to set unsafe header "Accept-Encoding"

gzip / deflateが有効になっているURLに対してjQueryにAJAX呼び出しを強制することは可能ですか?

そうでない場合、これはjQueryの欠点ですか、それともAJAXのより基本的なものですか?

4

1 に答える 1

41

ブラウザは、XHRリクエストを含め、必要に応じてaccept-encodingヘッダーを自動的に追加します。DOM/JSレベルでそれを行う必要はありません。

于 2010-09-23T13:19:32.513 に答える