【发布时间】:2017-04-12 22:57:40
【问题描述】:
我创建了一个静态网站,我想使用这个 Ajax 函数向NodeJs Express REST API 发送一个带有 http 标头的请求。但是当我发送它时,我无法通过 REST API 获取任何令牌字段。
$.ajax({
beforeSend: function (request) {
request.setRequestHeader("token", 'vjhvjhvjhvjhbjhsbvkjsbvkjsbkvjbskjvb');
},
dataType: "json",
url: "http://localhost:3000/feeds",
success: function (data) {
//do something
}
});
当我用 Postman 发送它时,我可以很容易地得到它。这是 NodeJS 中间件
router.use(function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
res.setHeader('Access-Control-Allow-Credentials', true);
console.log(req.headers.token);
});
我该如何解决这个问题?
【问题讨论】:
-
我认为您不能将
'Access-Control-Allow-Credentials', true与通配符"Access-Control-Allow-Origin", "*"一起使用 -
我已经删除了,还是下不了。
-
不删除但指定
"Access-Control-Allow-Origin", "origin you are making requests from"并将token添加到允许的标题 -
Access-Control-Allow-Origin", "token" 是你的意思吗?
标签: javascript jquery node.js ajax