Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 浏览器是否忽略了;“接受编码”;头球?_Javascript_Reactjs_React Native_Fetch - Fatal编程技术网

Javascript 浏览器是否忽略了;“接受编码”;头球?

Javascript 浏览器是否忽略了;“接受编码”;头球?,javascript,reactjs,react-native,fetch,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 => {

我有一个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),我看到:

我可以将“Accept Encoding”添加到我的请求头并给它任何值,或者我可以将其从头中删除。无论我做什么,检查网络活动总是显示我的请求头接受gzip、deflate和br。这正常吗?fetch是否有方法告诉服务器它不需要任何响应编码

我试着给gzip一个Q值0,如前所述,但我仍然在网络选项卡中看到相同的结果

      headers:{
      'ACCEPT':'application/json',
      'Content-Type':'application/json',
      'Accept-Encoding': 'gzip; q=0'
  }
接受编码是有效的。JavaScript无法更改它


因为网页的作者不知道浏览器能够解码什么编码,所以设置它通常是没有用的。

但是这个呢?“当客户机可以处理压缩内容时,客户机必须通过发送带有请求的Accept Encoding标头来通知服务器其功能。”-这是怎么回事?这与我说的没有矛盾。它特别支持此答案的第二段。服务器使用自定义编码实现并返回带有
内容编码:mycustomcompression
头的响应。客户端知道这一点(因为它们都是我的),并使用
Accept Encoding:mycustomcompression
头提交请求。但是接受编码头似乎被忽略了。我在检查网络流量时只看到gzip、deflate和br。如果您编写了一个支持
mycustomcompression
的自定义浏览器,那么它应该在
Accept Encoding
头中发送,而无需客户端JS的干预。如果您还没有编写自定义浏览器,那么我看不出您如何能够在传输层添加对附加编码的支持,
Accept Encoding
头适用于此。因此,通过说“客户端必须通过发送带有请求的Accept Encoding头通知服务器其功能”,他们的意思是“客户端”与浏览器本身一样,不是客户端/服务器应用程序,即react应用程序?