2017-08-01 32 views
-4

对预检请求的响应未通过访问控制检查:请求的资源上没有“Access-Control-Allow-Origin”标头。Angular 4中的Access-Control-Allow-Origin问题

+2

[否“访问控制允许来源”标头的可能的复制在Angular 2应用程序](https://stackoverflow.com/questions/36002493/no-access-control-allow-origin-header-in-angular-2-app) – Haseoh

回答

1

这不是角4.预飞行要求的问题时驻留在服务器A上的应用程序试图如果您正在使用的WebPack-DEV-服务器服务器B上

做一个API调用(用于发送localhost 4000上的示例)以及localhost:8080上的后端服务器(jBoss,Tomcat等),浏览器执行预检请求以检查Access-Control标头。

默认情况下,服务器不包含这些标头。它们需要通过服务器或位于前端服务器(/域)和后端服务器之间的代理服务器(如Nginx或Apache)添加。

1

我有一个解决方案。你需要在你的根目录下添加一个proxy.conf.json文件,你的服务器路径是这样的。

{ 
    "/FOLDER_PATH from root/*": { 
     "target": "YOUR_DOMAIN with folder path", 
     "secure": false, 
     "logLevel": "debug", 
     "pathRewrite": { 
      "^/FOLDER_PATH from root": "FOLDER_PATH from root" 
     } 
    } 
} 

然后,你需要更新你的package.json文件中像这样

"start": "ng serve", to `"start": "ng serve --proxy-config proxy.conf.json", 

也不要忘记使用$ npm start instead of ng serve