Nodejs-express 解决跨域问题

  • (全局解决)核心代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    //设置跨域访问
    app.all('*', function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
    res.header("X-Powered-By",' 3.2.1')
    res.header("Content-Type", "application/json;charset=utf-8");
    next();
    });

  • 参考资料->refernce

  • 有点要注意的是app.all()这个路由方法作为一个中间件,是装入所有的请求方法路径的。要进行正常通信,需要在处理请求之前或者处理请求返回结果前解决跨域的问题(我的问题是统一ip,不同端口,因此不允许通信),所以要在所有http请求之前调用上面的函数。

  • 因此像参考资料那样子,在var app = express()执行后调用上述app.all()中间件是最好的。