从CORS策略阻止了从源“ http://192.168.X.X:XX”访问“ http:// localhost:3000 /”处的XMLHttpRequest

时间:2019-03-20 05:52:49

标签: node.js angular cors angular7

尝试从Node server (http://localhost:3000)访问Angular 7 (http://192.168.X.X)

设置CORS,即

this.app.use(cors())
this.app.use(bodyParser.json())
this.app.use(bodyParser.urlencoded({ extended: false }))

但是得到

  

在以下位置访问XMLHttpRequest   原产地的“ http://localhost:3000/”   “ http://192.168.X.X:XX”已被CORS政策阻止:回复   预检请求未通过访问控制检查:否   请求中存在“ Access-Control-Allow-Origin”标头   资源。

尝试了此中间件功能

this.app.use(function (req, res, next) {
        res.header("Access-Control-Allow-Origin", "*");
        res.header('Access-Control-Allow-Origin', 'http://192.168.X.X:4200');
        res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
        next();
});

但都是徒劳的。任何可以解决我的问题的帮助或建议?

更新

将我的Angular应用托管到Heroku时,它可以正常工作,但在本地ip上会出现CORS错误。

尝试为

this.app.use(cors())
this.app.options('*', cors())

但仍然没有运气

1 个答案:

答案 0 :(得分:1)

尝试添加这两个

app.options("/*", function(req, res, next) {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
    res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization, Content-Length, X-Requested-With');
    res.sendStatus(200);
});

app.all('*', function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    next();
});