3

我正在为我在 Google App Engine 上托管的服务构建一个 API。这个 API 将提供大量数据,所以我希望它被压缩。我发现文档中有关如何将 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 请求:更改用户代理

4

1 回答 1

1

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

简短的回答是,基本上你什么都不用做。

于 2013-07-06T16:35:13.793 回答