我有一个Web服务,可以输出压缩的数据,已经通过使用wget和curl验证该服务可以响应原始JSON或gzip的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的更深层次问题?