【发布时间】:2017-07-19 06:48:45
【问题描述】:
我正在尝试使用fetch api。
首先我创建一个new Headers() 对象:
var oHeaders = new Headers({
'Accept': 'application/json',
'Content-Type': 'application/json',
"X-DocuSign-Authentication": '{"Username":"xxx","Password":"xxx","IntegratorKey":"xxx"}'
})
如果我尝试记录标题,则在实例化标题后一切都正确。
oHeaders.forEach(function(v){console.log(v)})
//logs: 2 application/json {"Username":"xxx","Password":"xxx","IntegratorKey":"xxx"}
我创建了 Request 对象:
var oReq = new Request('https://eu.docusign.net/restapi/v2/login_information', {
method: 'GET',
headers: oHeaders,
mode: 'no-cors',
});
如果我尝试记录请求对象的标头,则只会出现 accept 标头。
oReq.headers.forEach(function(v){console.log(v)})
//logs: application/json
如果我尝试fetch(oReq),我会收到401 unauthorized 响应。
是什么让标题消失了?
【问题讨论】:
-
所以您也在
https://eu.docusign.net/下运行的脚本中对此进行测试?或者如果不是,你为什么要设置mode: 'no-cors'? -
我必须使用
no-cors,因为Access-Control-Allow-Origin。该请求必须从不同的服务器客户端发出。即使没有no-cors,我也尝试检查标题并且标题仍然消失。 -
这毫无意义。 因为您正在向不同的域发出请求,所以它需要启用 CORS。
标签: javascript cors http-headers fetch fetch-api