即使在设置时,Access-Control-Allow-Origin也会出现问题

时间:2017-08-24 01:55:42

标签: node.js cors preflight

我的nodejs / express包括:

app.use(function handleAppError(err, req, res, next) {
    const msg = 'ERROR: App error: ' + util.inspect(err);
     // Website you wish to allow to connect
    res.setHeader('Access-Control-Allow-Origin', '*');

    console.log(msg);
    if (res.headersSent) {
        next(err);
    } else {
        res.status(500).send(msg);
    }
});

...但是在拨打电话时,我仍然在Chrome中出现错误:

  

XMLHttpRequest无法加载http://:8080 / management-api / v1 / bots。   对预检请求的响应没有通过访问控制检查:否   '访问控制允许来源'标题出现在请求的上   资源。起源' http://localhost:8100'因此是不允许的   访问。

1 个答案:

答案 0 :(得分:1)

您需要处理OPTIONS方法。 试试这个

app.all("/*", function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Cache-Control, Pragma, Origin, Authorization, Content-Type, X-Requested-With");
    res.header("Access-Control-Allow-Methods", "GET, PUT, POST, DELETE");
    if (req.method === "OPTIONS")
        res.send(200);
    else
        next();
});