Ho un servizio Web che è disposto a emettere dati gzip/sgonfiati. Ho verificato che il servizio risponderà con JSON non elaborato o con JSON gzip usando wget e curl.È possibile forzare jQuery a effettuare chiamate AJAX per URL con gzip/deflate abilitato?
Desidero utilizzare questo servizio Web utilizzando la chiamata jQuery AJAX.
Per impostazione predefinita, la chiamata $ .ajax fornita da jQuery non aggiunge l'intestazione di richiesta HTTP "Accept-Encoding: gzip" necessaria per consentire al server Web di rispondere con dati compressi.
Tuttavia, quando uso propri metodi di jQuery per aggiungere l'intestazione, ad esempio:
$.ajax({url: 'http://foo.com/service.json',
beforeSend: function(xhr) {
console.log('xhr set');
xhr.setRequestHeader('Accept-Encoding', 'deflate')
}
});
quindi il seguente errore viene visualizzato nella console del browser:
Refused to set unsafe header "Accept-Encoding"
E 'possibile forzare jQuery per effettuare chiamate AJAX per gli URL con gzip/deflate abilitato?
In caso contrario, si tratta di una mancanza in jQuery o di qualcosa di più fondamentale con AJAX?
Penso che il browser decida se accetta gzip/deflate oppure no. "Faking" questo potrebbe portare alla corruzione dei dati. – jwueller