3

Google App Engine でホスティングするサービス用の API を構築しています。この API は大量のデータを処理するため、gzip で圧縮する必要があります。「User-Agent」と「Accept-Encoding」の両方を「gzip」に設定することにより、GAEからgzipデータを取得する方法に関するドキュメントのセクションを見つけました。これをテストし、正常に動作します(ちょっとハックなようですが...)。

https://developers.google.com/appengine/docs/python/#Responses

しかし、API を使用するように構築されているクライアントの 1 つがブラウザーで実行されており、少なくとも Chrome では XMLHttpRequest がそれらのヘッダーを設定する方法がないようです。試してみるとエラーが発生します:

Refused to set unsafe header "User-Agent"
Refused to set unsafe header "Accept-Encoding"

XMLHttpRequest に対して Google App Engine から自動的にgzip エンコードされた応答を取得し、ブラウザで自動的にデコードするために、Javascript クライアントは何ができるでしょうか? これは可能ですか?他の種類のブラウザ リクエストで可能であれば、AJAX リクエストで gzip コンテンツを自動的にデコードできると思います。しかし、私が見ることができる唯一の解決策は、サーバーが応答を手動でエンコードする必要があり、ブラウザークライアントが手動でデコードする必要があることですが、それはかなり最適ではないようです.

私はすでにこれらの答えを見つけましたが、解決策を提供していないようです:

App Engine Accept-Encoding JQuery Ajax リクエスト: ユーザー エージェントの変更

4

1 に答える 1

1

これらを調整する必要はありません。ブラウザーは、これらのヘッダーを独自に設定する必要があります。ブラウザーが gzip の Accept-Encoding ヘッダーを設定していない場合、ブラウザーが gzip をサポートしていない可能性があり、その場合は自動的にデコードされません。

簡単に言えば、基本的に何もする必要はありません。

于 2013-07-06T16:35:13.793 に答える