2016-07-09 51 views
11

當我嘗試使用anguar2 http連接到遠程API時,出現以下異常。另外我的網絡服務器正在接收請求並正確響應。EXCEPTION:狀態響應:URL爲0:angular2中爲null

我可以向本地服務器發出成功的curl請求。

EXCEPTION: Response with status: 0 for URL: null 

service.ts

getAllProducts(): Observable<string> { 
     return this.http.get(this.productUrl) 
     .map(this.extractData) 
} 

private extractData(res: Response) { 
    let body = res.json(); 
    console.log(body) 
    return body.data || { }; 
} 
+0

不確定,但嘗試做到這一點,如果它的工作.. Chang>'Observable to Observable '和'return body.data || {}返回正文|| {}' – micronyks

+0

沒有運氣,仍然得到相同的異常。我相信這是與我從服務器收到的響應有關的事情 – Asif

回答

2

希望這可以幫助別人。

問題在於資源定義。當我試圖連接到使用angular2 http.get遠程資源,我得到以下錯誤

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at … 

FIX:

由於我使用flask-restful建立遠程API,下面修復解決我的問題

from flask_restful.utils import cors 
from flask_restful import Api 

api = Api(app, decorators=[cors.crossdomain(origin='*')]) 

完整的源代碼將可在這裏:inventory-manager

+0

'Api'在哪裏?我應該輸入什麼樣的文獻? –

+0

你需要從flask-restful包中導入它,像這樣'from flask_restful import Api',你可以在這裏查看完整的源代碼https://github.com/asifpy/inventory-manager – Asif

+0

Buddy,你說有問題你'試圖訪問你自己的服務器,但你沒有成功使用Cors,爲什麼?您是否實現了在自己的服務器上阻止跨源請求?好友我做了我自己的服務器api(意思是應用程序)與快遞,但得到相同的錯誤,沒有運氣 – blackHawk

4

我有同樣的錯誤了MEAN2應用。我所要做的只是安裝CORS中間件,並將其與express一起使用。

+0

獲取相同的錯誤安裝和使用科斯中間件,沒有運氣,你可以給工作示例 – blackHawk

+0

得到同樣的錯誤?您應該在代碼中發佈一個新問題。 –

+0

已發佈問題,看看http://stackoverflow.com/questions/41144243/err-connection-closed-exception-response-with-status-0-for-url-null?noredirect=1#comment69491176_41144243 – blackHawk

3

服務器不可用問題,可能是CORS或服務器故障。

+2

這不是一個特別有用的答案,考慮到問題8個月前已被問及已經接受回答。 – Claies

+0

@Claies,雖然它有一個可以接受的答案,但問題更爲通用!而接受的答案可能無法解決每個訪問用戶的問題。 –

+0

@AshishRanjan也許,但這並沒有提供答案或任何可行的解決方案。這是一個理論,充其量也是一種評論。 – Claies