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 リクエスト: ユーザー エージェントの変更