Angular 2 localhost和Backendserver连接

时间:2017-09-27 15:00:12

标签: angular http networking server

我正在尝试在我的机器上运行npm start的Angular 2项目并访问另一台服务器上的后端。 当我调用帖子或得到我总是在Firefox控制台中收到“Access-Control-Allow-Origin missing”错误时。 当我在服务器上部署我的应用程序时,它运行得很好,但我不想等待所有时间来部署我的应用程序。

我尝试了不同的解决方案,比如代理。我是否需要配置本地主机或其他东西?有最先进的解决方案吗?

2 个答案:

答案 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();
});