Javascript 提取请求不工作
我试图使用或向HTTP请求添加自定义头,Javascript 提取请求不工作,javascript,fetch-api,Javascript,Fetch Api,我试图使用或向HTTP请求添加自定义头,X-Query-Key,但当我将其添加到请求头时,设置头时似乎失败,请求方法由于某种原因被设置为选项 当我删除标题时,它会返回到它应该做的GET 示例代码如下所示: const options = { url: url, headers: { 'Accept': 'application/json', 'X-Query-Key': '123456' //Adding this breaks the reques
X-Query-Key
,但当我将其添加到请求头时,设置头时似乎失败,请求方法
由于某种原因被设置为选项
当我删除标题时,它会返回到它应该做的GET
示例代码如下所示:
const options = {
url: url,
headers: {
'Accept': 'application/json',
'X-Query-Key': '123456' //Adding this breaks the request
}
};
return request(options, (err, res, body) => {
console.log(body);
});
试试这个:
const headers = new Headers({
"Accept": "application/json",
"X-Query-Key": "123456",
});
const options = {
url: url,
headers: headers
};
return request(options, (err, res, body) => {
console.log(body);
});
如果这不能解决问题,那可能是因为
跨源请求上的自定义标头必须由
从中请求资源的服务器。此服务器中的服务器
示例需要配置为接受X-Custom-Header
标头,以便获取成功。设置自定义标题时,
浏览器执行飞行前检查。这意味着浏览器
首先向服务器发送一个选项请求,以确定HTTP
服务器允许使用方法和标头。如果服务器是
配置为接受原始请求的方法和标头,
然后它被发送。否则,将抛出一个错误
因此,如果使用自定义头,您将有2个请求,第一个请求带有方法选项,用于检查服务器是否允许自定义头,然后如果服务器响应为200 OK并允许原始请求,则将发送第二个请求
听起来像CORS。谢谢-这很有效,我想我错过了
标题
-现在我遇到了CORS问题,这是我的下一个问题:我想这是因为你必须调用构造函数才能创建自己的标题。嘿,至少fetch API使COR更易于处理。新的fetchapi的真正障碍是一个。fetch对ServiceWorkers有它的用途,但实际上我发现自己仍然到处使用XHR2。