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のより基本的なものですか?