2017-05-03 59 views
0

我試圖找回這是另一個port.I運行如下訪問控制允許來源的錯誤和angular2

Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. 

我的服務我得到一個錯誤服務.ts文件如下提前

+3

這些標題應該在服務器端沒有客戶端應用程序設置.. https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS –

+0

有任何替代將它們設置在客戶端? – sravanthi

+0

nope ..你應該設置你的服務器端CORS –

回答

1

根據瀏覽器政策CORS是不允許的。 Howerver如果您使用的是Chrome擴展POSTMAN或應用程序如INSOMINAcors錯誤不會發生。

如何通過cors錯誤?

CORS錯誤應該只能通過服務器端。

請考慮您是否使用作爲您的服務器端。然後在您的應用程序路線中添加以下中間件。

app.use(function(req,res){ 
res.header('Access-Control-Allow-Origin', '*'); 
    res.header('Access-Control-Allow-Header' , 'authorization'); 
    }); 
0

你根本無法

getDeviceInfo(){ 
    let headers = new Headers(); 
    headers.append('Access-Control-Allow-Origin', 'http://localhost:3000',); 
    headers.append('Access-Control-Allow-Headers','Authorization') 
    let options = new RequestOptions({ 
     method: RequestMethod.Get, 
     url: DEVICE_URL, 
     headers: headers 
    }); 
    return this.http.request(new Request(options)) 
     .map((res: Response) => res.json()); 
    } 

感謝。嘗試Oauth從其他網站獲取信息/數據。

+0

你是什麼意思_你簡直不能和這與OAuth有什麼關係?這只是CORS問題,可以通過在響應頭文件中設置必需的頭文件來解決 – Developer

相關問題