浏览器是否忽略“接受编码”标头?

时间:2020-09-11 22:16:46

标签: javascript reactjs react-native fetch

我有一个React应用,它通过这种方式从服务器获取数据:

fetch('http://localhost:5000/records',{
  method:'GET',
  headers:{
      'ACCEPT':'application/json',
      'Content-Type':'application/json'
  }
})
.then(response => response.json())
        .then(data => {
            this.setState({
                records: data,
            });
        });

}

检查网络活动(开发工具Chrome / Firefox),我看到:

enter image description here

我可以将“ Accept-Encoding”添加到我的请求标头中并为其提供任何值,或者可以将其从标头中完全删除。不管我做什么,检查网络活动始终会显示我的请求标头接受gzip,deflate和br。这正常吗?是否有一种获取方法来告诉服务器它不需要任何响应编码?

我尝试按照here的说明给gzip的qvalue设置为0,但在“网络”标签中仍然看到相同的结果。

      headers:{
      'ACCEPT':'application/json',
      'Content-Type':'application/json',
      'Accept-Encoding': 'gzip; q=0'
  }

1 个答案:

答案 0 :(得分:0)

接受编码为a Forbidden Header。 JavaScript无法更改它。

由于网页的作者不知道浏览器能够解码的编码,因此无论如何对其进行设置通常并不有用。