如何使用Google App Engine为AJAX请求提供gzip压缩内容?

时间:2013-07-05 17:57:38

标签: javascript google-app-engine

我正在为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

1 个答案:

答案 0 :(得分:1)

您不需要调整这些。浏览器应该自己设置这些标头。如果浏览器没有为gzip设置Accept-Encoding标头,则可能是浏览器不支持gzip,在这种情况下它不会自动解码。

简短的回答是,基本上你不需要做任何事情。