我從我的node.js服務器獲取數據的問題。訪問控制允許起源問題角2
的客戶端是:
public getTestLines() : Observable<TestLine[]> {
let headers = new Headers({ 'Access-Control-Allow-Origin': '*' });
let options = new RequestOptions({ headers: headers });
return this.http.get('http://localhost:3003/get_testlines', options)
.map((res:Response) => res.json())
.catch((error:any) => Observable.throw(error.json().error || 'Server error'));
}
在服務器端我還設置了頭:
resp.setHeader('Access-Control-Allow-Origin','*')
resp.send(JSON.stringify(results))
但我得到一個錯誤
「的XMLHttpRequest無法加載http://localhost:3003/get_testlines 。對預檢請求的響應未通過訪問控制檢查:否 請求的 資源上存在'Access-Control-Allow-Origin'標題。因此,原產地「http://localhost:3000」不允許 訪問。」
我該如何解決呢?當我刪除頁眉它說,這個頭是必需的。
您是否在使用Crome?如果是,請啓用Access-Control-Allow-Origin。 Crome有一個cors插件。對於IE,你不應該在設置標題後出現這個錯誤 –
這很可能是服務器端問題。你確定你的響應實際上在'OPTIONS'請求中發送了頭文件嗎?例如,您可以嘗試郵遞員檢查標題。 – Randy