2017-08-01 28 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