如何使用谷歌应用引擎为AJAX请求提供gzip内容
How to serve gzipped content for AJAX requests with Google App Engine?
我正在为我在谷歌应用引擎上的服务托管构建一个API。这个API将提供大量的数据,所以我希望它被gzipped。我在文档中找到了关于如何将GAE设置为gzip数据的部分,方法是将"User Agent"answers"Accept Encoding"都设置为"gzip"。测试了这个,工作正常(尽管看起来有点生气…)。
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自动gzip编码的XMLHttpRequest响应,并让浏览器自动解码?这可能吗?我假设AJAX请求可以自动解码gzip内容,如果其他类型的浏览器请求可以的话。但我能看到的唯一解决方案是,服务器必须手动编码响应,浏览器客户端必须手动解码,但这似乎是次优的。
我已经找到了这些答案,但它们似乎没有提供任何解决方案:
应用程序引擎接受编码JQuery Ajax请求:更改用户代理
您不需要调整这些。浏览器应该自己设置这些标题。如果浏览器没有为gzip设置Accept-Encoding标头,则可能是浏览器不支持gzip,在这种情况下,它不会自动解码。
简单的答案是,基本上你什么都不需要做。
相关文章:
- ajax请求的顺序总是不同的
- Meteor如何接收HTTP请求
- 有没有一种方法可以防止img get请求使用css或js发生
- 从ajax请求中获取javascript对象
- JSONP请求返回结果,但也触发error_callback
- 在localhost Dev Box上测试JSONP请求的最佳方式
- Ajax请求文档就绪会导致jquery加载缓慢
- MockJax没有在JavaScript应用程序中发送对我AJAX请求的响应
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- 在openshift node js应用程序中获取请求
- 反应路由器弄乱了请求网址
- 在我的情况下,如何进行http请求
- 使用密码对话框Javascript请求帮助
- servlet中的请求对象,而不是从jsp接收参数值
- 否'访问控制允许来源'标头存在于IISNOde中请求的资源(AngularJS+NodeJs)上
- JavaScript代码未正确检查ajax请求
- node.js请求数据事件未在CORS ajax调用中触发
- 如何解压缩NodeJS请求's模块gzip响应体
- 如何使用谷歌应用引擎为AJAX请求提供gzip内容
- 我如何发送压缩(gzip) JSON作为响应Ajax请求,从Java