我正在为我在 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 内容。但我能看到的唯一解决方案是服务器必须手动对响应进行编码,而浏览器客户端必须手动对其进行解码,但这似乎并不理想。
我已经找到了这些答案,但它们似乎没有提供任何解决方案: