是否有可能强制jQuery为启用了gzip / deflate的URL进行AJAX调用?

我有一个愿意输出gzip / deflated数据的Web服务。 我已经validation该服务将使用原始JSON或使用wget和curl的gzip’d JSON进行响应。

我想使用jQuery AJAX调用来使用这个Web服务。

默认情况下,jQuery提供的$ .ajax调用不会添加“Accept-Encoding:gzip”HTTP请求标头,这是Web服务器使用gzip压缩数据进行响应所必需的。

但是,当我使用jQuery自己的方法添加标头时,例如:

$.ajax({url: 'http://foo.com/service.json', beforeSend: function(xhr) { console.log('xhr set'); xhr.setRequestHeader('Accept-Encoding', 'deflate') } }); 

然后在浏览器控制台中出现以下错误:

 Refused to set unsafe header "Accept-Encoding" 

是否有可能强制jQuery为启用了gzip / deflate的URL进行AJAX调用?

如果没有,这是jQuery的缺点,还是AJAX更基本的东西?

浏览器会根据需要自动添加accept-encoding标头,包括XHR请求。 您不需要在DOM / JS级别执行此操作。