我正在尝试在我的机器上运行npm start的Angular 2项目并访问另一台服务器上的后端。 当我调用帖子或得到我总是在Firefox控制台中收到“Access-Control-Allow-Origin missing”错误时。 当我在服务器上部署我的应用程序时,它运行得很好,但我不想等待所有时间来部署我的应用程序。
我尝试了不同的解决方案,比如代理。我是否需要配置本地主机或其他东西?有最先进的解决方案吗?
答案 0 :(得分:3)
您可以在本地环境中设置代理。
在package.json
添加脚本"serve-dev": "<startApplication> --sourcemap=false --proxy-config proxy.config.json"
。
使用npm run serve-dev
运行它。
proxy.config.json
文件应如下所示:
{
"/api/*":{
"target":"http://localhost:5005",
"secure": false,
"logLevel": "debug"
}
}
当您在服务中呼叫端点时,get
应该是:this._http.get('./api/myEndpoint')
。
答案 1 :(得分:0)
在API路由之前和应用使用之后进行设置
app.use(express.static(publicPath)); // Set the path for express to use
// Add headers
app.use(function(req, res, next) {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, Authorization');
next();
});