Angular 4中的Access-Control-Allow-Origin问题

时间:2017-08-01 10:20:20

标签: angular

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

2 个答案:

答案 0 :(得分:1)

这不是Angular 4的问题。只要驻留在服务器A上的应用程序尝试在服务器B上执行API调用,就会发送预飞行请求。

如果您在localhost:8080上使用webpack-dev-server(例如在localhost 4000上)和后端服务器(jBoss,Tomcat等),浏览器会执行预检请求以检查Access-Control标头

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

答案 1 :(得分: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