【发布时间】:2016-01-06 23:11:53
【问题描述】:
我正在尝试允许从任何地方访问。
我尝试过使用应用中间件:
app.use(function (req, res, next) {
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader('Access-Control-Allow-Methods', '*');
res.setHeader("Access-Control-Allow-Headers", "*");
next();
});
我曾尝试在路线中使用它:
app.post('/login',function(req,res){
var login = req.body;
var sess = req.session;
if (!login.email && !login.pwd){
return res.status(401);
}
res.header("Access-Control-Allow-Origin", '*');
res.header("Access-Control-Allow-Headers", '*');
.... more code here
两者都不起作用。我不断收到错误消息:“对预检请求的响应未通过访问控制检查:请求的资源上不存在 'Access-Control-Allow-Origin' 标头。”
在服务器的下方,我们对另一条路线使用类似的代码,它可以工作:
app.post('/questar',function(req,res){
//allow xhr post from retireup domains
var cors = {
origin: "https://www.website.com";
};
res.header("Access-Control-Allow-Origin", cors.origin);
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.type('application/json');
我无法区分代码之间的区别,但只有一组有效。任何想法为什么?这似乎是一个不应该如此复杂的问题。谢谢
【问题讨论】:
-
试试 cors npm 模块?