微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以强制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级别执行此操作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐