2012-03-19 44 views
5

在APP引擎API中提到,如果请求带有"Accept-Encoding"集合,那么它会自动压缩响应。App引擎接受编码

但是当我看到请求时,标题不在那里。但在浏览器中,它已被设置。当我尝试明确设置的头部( JQuery ajax功能),还有一个消息:

Refused to set unsafe header "Accept-Encoding" 

但在本地主机工作时,这种情况是不存在的 - 要求有“接受编码”标头。这只在发布后才会发生。但不允许明确地设置“接受编码”。

我到处搜索,但找不到问题的解释。这将是真正有用的,如果有人可以解释...

回答

6

你有两个不同的问题:

  1. App Engine不压缩的答复。 GAE使用许多因素来确定是否需要压缩响应。决定时需要考虑内容类型和用户代理。参见Nick Johnson(来自GAE团队)的answer

  2. jQuery拒绝设置“Accept-Encoding”标头。请注意,这是一个jQuery问题,与GAE无关。看到这个:Is it possible to force jQuery to make AJAX calls for URLs with gzip/deflate enabled?

+1

感谢您的回复......但正如我之前所说的,我遇到的问题是在HTTPRequest标头中,“Accept-Encoding”为空。正如GAE所解释的那样,GAE无法识别是否压缩。但正如我所解释的,当我在localhost中工作时,“Accept-Encoding”不为空。所以我在这里有点困惑。 – KTB 2012-03-20 17:29:43

+0

奇怪的是,当我使用本地主机时,Accept-Encoding为null,即使在IntelliJ中它在httpRequest中的调试期间显示。但是,如果我使用getHeader(“Accept-Encoding”),它将返回null。显然GAE必须去掉这个标题。 – AndroidDev 2018-01-29 16:32:36

3

我有一个类似的问题,在HTTPRequest头,“接受编码”为空。正如GAE所解释的,它会查找Accept-Encoding和User-Agent头,如果它想压缩。但就我而言,GAE无法识别是否压缩。

从浏览器,然后设置标题,但在请求标题,它不是。