小编典典

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

ajax

我有一个愿意输出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的更基本的功能?


阅读 357

收藏
2020-07-26

共1个答案

小编典典

浏览器会自动添加适当的接受编码标头,包括在XHR请求上。您不需要在DOM / JS级别上执行此操作。

2020-07-26