是否可以强制jQuery对启用了gzip/deflate的URL进行AJAX调用?

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

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

认情况下,jQuery提供的$ .ajax调用不会添加Web接受gzip数据响应所必需的“Accept-Encoding:gzip”HTTP请求头。

但是,当我使用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级别执行此操作。

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: <span id=&quot...
jQuery 添加水印 <script src="../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...