Tengo un servicio web que está dispuesto a generar datos gzip/deflated. He verificado que el servicio responderá con JSON sin procesar o con gzip'd JSON con wget y curl.¿Es posible obligar a jQuery a realizar llamadas AJAX para URL con habilitado gzip/deflate?
Quiero consumir este servicio web utilizando la llamada jQuery AJAX.
De manera predeterminada, la llamada $ .ajax que proporciona jQuery no agrega el encabezado de solicitud HTTP "Aceptar codificación: gzip" que es necesario para que el servidor web responda con datos comprimidos.
Sin embargo, cuando se utiliza propios métodos de jQuery para agregar el encabezado, por ejemplo:
$.ajax({url: 'http://foo.com/service.json',
beforeSend: function(xhr) {
console.log('xhr set');
xhr.setRequestHeader('Accept-Encoding', 'deflate')
}
});
continuación, aparece el siguiente error en la consola del navegador:
Refused to set unsafe header "Accept-Encoding"
¿Es posible forzar jQuery para hacer llamadas AJAX para URL con gzip/deflate habilitado?
Si no es así, ¿esto es una deficiencia en jQuery, o algo más fundamental con AJAX?
Creo que el navegador decide si acepta gzip/desinflar o no. "Fingir" esto podría conducir a la corrupción de datos. – jwueller