2012-03-19 16 views
5

Nell'API di APP Engine, viene menzionato che, se la richiesta viene fornita con "Accept-Encoding" impostata, la compressione verrà automaticamente compressa.Encoder di accettazione del motore di app

Ma quando guardo la richiesta, l'intestazione non è lì. ma al browser, è impostato. quando provo a impostare in modo esplicito l'intestazione (con funzione di JQuery ajax), c'è un messaggio:

Refused to set unsafe header "Accept-Encoding" 

Ma questa situazione non è che si verificano quando si lavora in host locale - richiesta ha l'intestazione "Accept-Encoding". questo accade solo dopo la pubblicazione. ma non permettendo di impostare la "Accept-Encoding" accade esplicitamente sempre.

Ho cercato ovunque, ma non sono riuscito a trovare una spiegazione del problema. Sarebbe veramente utile se qualcuno può spiegare ...

risposta

6

si hanno due diversi problemi:

  1. App Engine non comprime risposta. GAE utilizza una serie di fattori per determinare se la risposta deve essere compressa. Prende in considerazione il tipo di contenuto e l'agente utente al momento di decidere. Vedi lo answer di Nick Johnson (del team GAE).

  2. jQuery si rifiuta di impostare l'intestazione "Accetta-Codifica". Si noti che questo è un problema di jQuery e non ha nulla a che fare con GAE. Vedere questo: Is it possible to force jQuery to make AJAX calls for URLs with gzip/deflate enabled?

+1

grazie per la risposta ... ma come ho detto prima, il problema che sto avendo è nell'intestazione HTTPRequest, "Accept-Encoding" è nullo. Quindi, come ha spiegato GAE, non c'è modo in cui GAE può riconoscere se comprimere. Ma come ho spiegato, quando lavoro in localhost, "Accept-Encoding" non è nullo. Quindi sono un po 'confuso qui. – KTB

+0

Stranamente, quando utilizzo localhost, Accept-Encoding è nullo, anche se in IntelliJ viene visualizzato durante il debug in httpRequest. Ma se uso getHeader ("Accept-Encoding"), restituisce null. Apparentemente GAE deve rimuovere questa intestazione. – AndroidDev

3

Ho un problema simile come nell'intestazione HTTPRequest, "Accept-Encoding" è nullo. Come ha spiegato GAE, cerca le intestazioni Accept-Encoding e User-Agent, se vuole comprimere. ma nel mio caso il GAE non è in grado di riconoscere se comprimere.

Dal browser, quindi l'intestazione è impostata, ma nell'intestazione della richiesta, non lo è.

Problemi correlati