在APP Engine API中,提到如果请求附带"Accept-Encoding"
设置,则会自动压缩响应。
但是当我查看请求时,标题不存在。但在浏览器中,它已设置。当我尝试显式设置标题(使用 JQuery ajax函数)时,会显示一条消息:
Refused to set unsafe header "Accept-Encoding"
但是在本地主机中工作时没有出现这种情况 - 请求具有“Accept-Encoding”标头。这只有在发布后才会发生。但不允许始终明确地设置“Accept-Encoding”。
我到处搜索,但找不到问题的解释。如果有人可以解释那将是非常有帮助的。
答案 0 :(得分:6)
您有两个不同的问题:
App Engine不压缩回复。 GAE使用许多因素来确定是否需要压缩响应。它在决定时需要考虑内容类型和用户代理。请参阅Nick Johnson(来自GAE团队)的answer。
jQuery拒绝设置“Accept-Encoding”标头。请注意,这是一个jQuery问题,与GAE无关。请参阅:Is it possible to force jQuery to make AJAX calls for URLs with gzip/deflate enabled?
答案 1 :(得分:3)
我遇到与HTTPRequest标头类似的问题,“Accept-Encoding”为空。正如GAE所解释的那样,如果要压缩,它会查找Accept-Encoding和User-Agent标头。但就我而言,GAE无法识别是否要压缩。
在浏览器中,然后设置了标头,但在请求标头中,它不是。