2017-06-17 53 views
-1

在API中,它們在沒有授權的情況下調用就沒有問題。HTTP授權標頭在離子2中不與codeigniter api一起發送0

如何爲它設置標題? 「謝謝」

let headers: Headers = new Headers({ 'Authorization': token, 'Content-Type': 'application/json; charset=UTF-8' });` 

let options: RequestOptions = new RequestOptions({headers: headers}); 

let params: URLSearchParams = new URLSearchParams(); 
params.append('latitude', '23.259933'); 
params.append('longitude', '77.412615'); 
params.append('nearby', '5'); 

return this.http.post(baseUrl, params, options) 
      .map(
       (response: Response)=>{ 
        return response; 
       } 
      ) 

Chrome的控制檯:

Response for preflight has invalid HTTP status code 404 
+0

這裏有什麼問題? – maninak

+0

我試圖發佈請求與授權標題,但不發送和鉻控制檯返回「預檢的響應具有無效的HTTP狀態代碼404」 – yash

+0

在您發送請求的服務器上啓用CORS。 – Khurram

回答

0

這是因爲瀏覽器之前將您的請求到服務器的頭髮送實際的請求(所謂preflight),從而驗證您的請求是否符合在服務器的配置中定義的的CORS策略。

因此,您需要做的是仔細檢查您正在聯繫的服務器是否已正確配置爲接受請求。

確保您的後端服務器不僅接受POST請求,而且還接受針對相同端點url的OPTIONS請求。 OPTIONS請求應該返回成功200代碼。

在該服務器上,您可能有類似於「當用戶點擊端點/abc與請求類型POST,然後返回一些數據」。你還需要的東西,說:「當用戶點擊端點/abc與請求類型OPTIONS回報200 OK

如果一切都失敗了,你可以嘗試在你的瀏覽器中使用this plugin,但請記住,這將有助於僅持續發展,是一個當然不適用於生產的創可貼解決方案。