- 我想在请求头中插入token传给后台
我就做了这件事:
服务端是Node,随后Node没有接受到请求,前台控制台中
查找原因就是因为请求头中加入了token,要是去掉则能正常发出请求
我查原因,可能是Node服务端对请求头有限定,不能有自定义属性
也找过几个方法设置,但是最后都没有奏效,
希望大家帮帮我,谢谢!
服务端是Node,随后Node没有接受到请求,前台控制台中
查找原因就是因为请求头中加入了token,要是去掉则能正常发出请求
我查原因,可能是Node服务端对请求头有限定,不能有自定义属性
也找过几个方法设置,但是最后都没有奏效,
希望大家帮帮我,谢谢!
token可以放到cookie发给后台啊,后台能拿到cookie中的token字段,毕竟前端请求也是这么传过去的
var div = document.getElementById('div');
div.onclick = () => {
let headres = {
method: 'post',
credentials: 'include',
headers: {
'token': '11111'
},
body: ''
}
fetch('/token', headres).then(x => x.json()).then(x => {
console.log(x);
}).catch(err => {
console.error(err);
})
}
我使用你的发送方式
let xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () { //响应完成后的回调函数
if (xhr.readyState == 4) { //如果响应完成...此时还不知是否响应成功
if (xhr.status == 200) { //如果响应成功
console.log(xhr.responseText); //使用返回的数据responseText
} else {
console.log(xhr.responseText);
}
}
};
xhr.open("POST", '/token'); //准备请求, 但不发送. 使用get方法, 获取a.html
xhr.setRequestHeader('Content-Type', 'text/plain;charset=UTF-8');
xhr.setRequestHeader('token', '3333');
xhr.send(222);
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答839 阅读✓ 已解决
2 回答2k 阅读✓ 已解决
5 回答2.3k 阅读
当我在请求头上自定义加上token 属性后,浏览器会先发送option预请求,node服务端只对get和post请求做了逻辑处理,导致没有捕捉到这次请求,就没有对它进行允许跨域,允许请求头中带有token属性的逻辑
option没有请求成功导致后面的post的请求没有发出,就没有获取数据
当option请求成功了,后面才能以get或post请求