我有一个愿意输出gzip /压缩数据的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的更基本的功能?
浏览器会自动添加适当的接受编码标头,包括在XHR请求上。您不需要在DOM / JS级别上执行此操作。