2012-03-19 15 views
5

En la API de App Engine, se menciona que, si la petición viene con "Accept-Encoding" set, y luego se comprimirá automáticamente la respuesta.App Engine Accept-Encoding

Pero cuando miro a la solicitud, la cabecera no está allí. pero en el navegador, está configurado. cuando trato de establecer explícitamente la cabecera (con JQuery ajax función), hay un mensaje:

Refused to set unsafe header "Accept-Encoding" 

Pero esta situación no se producen cuando se trabaja en el ordenador local - solicitud tiene el encabezado "Accept-Encoding". esto sucede solo después de la publicación. pero no permitir que se establezca el "Accept-Encoding" ocurre explícitamente siempre.

me buscó por todas partes, pero no pudo encontrar una explicación al problema. Sería de gran ayuda si alguien puede explicar ...

Respuesta

6

usted tiene dos problemas diferentes:

  1. App Engine no comprime la respuesta. GAE utiliza una serie de factores para determinar si la respuesta debe comprimirse. Tiene en cuenta el tipo de contenido y el agente de usuario al momento de decidir. Vea el answer por Nick Johnson (del equipo de GAE).

  2. jQuery se niega a establecer "Accept-Encoding" de cabecera. Tenga en cuenta que este es un problema jQuery y no tiene nada que ver con GAE. Ver esto: Is it possible to force jQuery to make AJAX calls for URLs with gzip/deflate enabled?

+1

gracias por la respuesta ... pero como he dicho antes, el problema que estoy teniendo es en la cabecera HTTPRequest, "Accept-Encoding" es nulo. Entonces, como ha explicado GAE, no hay manera de que GAE reconozca si comprimir. Pero como he explicado, cuando estoy trabajando en localhost, "Aceptar-Codificar" no es nulo. Así que estoy un poco confundido aquí. – KTB

+0

Curiosamente, cuando uso localhost, Aceptar-Codificar es nulo, aunque en IntelliJ aparece durante la depuración en httpRequest. Pero si uso getHeader ("Accept-Encoding"), devuelve null. Aparentemente GAE debe quitar este encabezado. – AndroidDev

3

Tengo un problema similar al de la cabecera HTTPRequest, "Accept-Encoding" es nulo. Como GAE ha explicado, busca los encabezados Accept-Encoding y User-Agent, si quiere comprimir. pero en mi caso no hay forma de que el GAE pueda reconocer si comprimir.

Desde el navegador, entonces encabezado se fija, pero en el encabezado de la solicitud, no lo es.