我正在为Google App Engine上的服务托管构建API。此API将提供大量数据,因此我希望它被gzip压缩。我发现文档中有关如何获取GAE到gzip数据的部分是通过将“User-Agent”和“Accept-Encoding”都设置为“gzip”。经过测试,效果很好(虽然看起来有点像hacky ......)。
https://developers.google.com/appengine/docs/python/#Responses
但是构建使用API的客户端之一正在浏览器中运行,并且似乎没有办法让XMLHttpRequest设置这些标头,至少在Chrome中是这样。我尝试时遇到错误:
Refused to set unsafe header "User-Agent"
Refused to set unsafe header "Accept-Encoding"
如果有的话,Javascript客户端可以从Google App Engine获取针对XMLHttpRequest的自动 gzip编码响应,并让浏览器自动解码?这甚至可能吗?如果其他类型的浏览器请求可以,我会假设AJAX请求可以自动解码gzip内容。但我能看到的唯一解决方案是服务器必须手动编码响应,浏览器客户端必须手动解码,但这看起来非常不理想。
我已经找到了这些答案,但它们似乎没有提供任何解决方案:
App Engine Accept-Encoding JQuery Ajax Request: Change User-Agent
答案 0 :(得分:1)
您不需要调整这些。浏览器应该自己设置这些标头。如果浏览器没有为gzip设置Accept-Encoding标头,则可能是浏览器不支持gzip,在这种情况下它不会自动解码。
简短的回答是,基本上你不需要做任何事情。