我正在尝试使用Fetch API或request向HTTP请求添加自定义标头X-Query-Key
,但是当我将此添加到请求的标头时,它似乎在设置标题,Request Method
由于某种原因设置为OPTIONS
。
当我删除标题时,它会回到原来的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);
});
答案 0 :(得分:1)
必须支持跨源请求的自定义标头 请求资源的服务器。这个服务器 示例需要配置为接受X-Custom-Header 标头,以便获取成功。设置自定义标头后, 浏览器执行预检检查。这意味着浏览器 首先向服务器发送OPTIONS请求以确定HTTP 服务器允许使用方法和标头。如果服务器是 配置为接受原始请求的方法和标头, 然后发送。否则,将引发错误。
因此,如果使用自定义标头,您将有2个请求,第一个使用方法OPTIONS检查服务器是否允许自定义标头,之后如果服务器响应为200 OK并允许您的原始请求,则第二个将发送
答案 1 :(得分:0)
试试这个:
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);
});
如果这不能解决问题,则可能与CORS有关。