Javascript 使用fetch-only选项创建get请求是send

Javascript 使用fetch-only选项创建get请求是send,javascript,ecmascript-6,request,http-get,fetch-api,Javascript,Ecmascript 6,Request,Http Get,Fetch Api,我正在尝试使用Fetch创建一个get请求。请求如下所示: fetch('https://requestb.in/14ikb6j1', { method: 'get', headers: { 'Authorization': 'Token token=xxxxx' }}); 如果我向自己的服务器发出此请求,则每次选项请求都会失败。我不明白为什么 如果我向requestbin发出此请求,首先会有一个选项请求。但是,在收到选项响应后,不会发出实际的get请求 这是request

我正在尝试使用Fetch创建一个get请求。请求如下所示:

fetch('https://requestb.in/14ikb6j1', {
  method: 'get',
  headers: {
    'Authorization': 'Token token=xxxxx'
  }});
如果我向自己的服务器发出此请求,则每次选项请求都会失败。我不明白为什么

如果我向requestbin发出此请求,首先会有一个选项请求。但是,在收到选项响应后,不会发出实际的get请求

这是requestbin收到的信息:

OPTIONS /14ikb6j1

HEADERS

Referer: http://localhost:9000/
Host: requestb.in
Total-Route-Time: 0
Via: 1.1 vegur
Accept-Encoding: gzip
Cf-Visitor: {"scheme":"https"}
Cf-Ipcountry: NL
Cf-Ray: 36edd35d1cad2b28-AMS
Cf-Connecting-Ip: 37.153.231.90
Connection: close
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
Accept: */*
Connect-Time: 1
Access-Control-Request-Method: GET
Content-Length: 0
Accept-Language: nl-NL,nl;q=0.8,en-US;q=0.6,en;q=0.4
X-Request-Id: 69b120c1-0f18-454b-a7fd-91f082252a06
Access-Control-Request-Headers: authorization
Origin: http://localhost:9000
这是chrome记录的内容:


最奇怪的是,结果我得到了
200-OK
状态。但是,控制台仍会记录以下内容:

无法加载获取API。回应 飞行前请求未通过访问控制检查:否 “Access Control Allow Origin”标头出现在请求的服务器上 资源。因此,不允许使用源“” 通道如果不透明的响应满足您的需要,请设置请求的 模式设置为“无cors”,以获取禁用cors的资源。 :9000/#/分支:1未捕获(承诺中)类型错误:无法获取

但如果我用邮递员提出这个请求,它确实有效:


如何使用身份验证标头使此get请求生效?

这可能是CORS的问题。将请求发送到的服务器不允许来自其他域的请求。 检查浏览器控制台并查找错误。你可能会发现这样的事情:

fetch('https://requestb.in/14ikb6j1', {
  method: 'get',
  headers: {
    'Authorization': 'Token token=xxxxx'
  }});
无法加载获取API。回应 飞行前请求未通过访问控制检查:否 “Access Control Allow Origin”标头出现在请求的服务器上 资源。因此,不允许使用源“” 通道如果不透明的响应满足您的需要,请设置请求的 模式设置为“无cors”,以获取禁用cors的资源


'Content-Type':'application/json'
获取请求。是吗?@Forivin对不起,你是对的。更新后,删除这些内容类型标题不会改变任何东西。但如果cors被禁用,为什么我的邮递员请求会起作用?因为邮递员没有域。它的行为就像是一个普通用户打开一个网站。由于浏览器扩展邮递员获得了这些特权,而这些特权是网站自己无法获得的。这是浏览器内置的一个简单的安全功能,可以防止网站a与网站B通信,除非网站B同意。