2016-05-23 22 views
0

我正在爲我的應用程序使用webpack angular2入門工具包(https://github.com/AngularClass/angular2-webpack-starter),現在我有一個問題。Angular2中的CORS ISSUE

我儘量讓get調用

getSomeData(): Observable<any> { 
    let url = here is my api URL; 
    let headers = new Headers({ 'Content-Type': 'application/json; charset=utf-8', "Access-Control-Allow-Origin": "*", 'dataType': 'json', }); 
    let options = new RequestOptions({ headers: headers }); 

    return this._http.get(url, options).map(res => res.json()); 
} 

而且我有一個錯誤

的XMLHttpRequest無法加載(我的URL)迴應預檢要求未通過訪問控制檢查:沒有「訪問-Control-Allow-Origin'標題出現在請求的資源上。因此'Origin'http://localhost:3000'不允許訪問。該響應具有HTTP狀態代碼405.

此Api(它使用firebird)默認返回XML,這可能會導致問題。

  1. 如何使JSON始終如此?
  2. 如何解決這個問題與CORS?
+0

如何你的後端服務的數據?快遞? – rinukkusu

+0

如果是Express,您可以使用這個包並按照說明操作:https://www.npmjs.com/package/cors – rinukkusu

回答

1

此問題出現在服務器端。後者必須在HTTP調用的響應中返回一個Access-Control-Allow-Origin頭文件。

大多數情況下,有些工具可以插入到服務器應用程序中以便爲您執行此操作。服務器知道當客戶端發送Origin標題(由瀏覽器自動添加)時必須返回CORS標題。

請參閱這篇文章,瞭解CORS更多詳細信息: