2016-08-02 163 views
1

我正在使用一個外部API的AngularJS應用程序,我有一個奇怪的問題(CORS)。我做了很多研究並沒有解決這個問題。Nginx網絡瀏覽器CORS問題

當我打我的API時,預檢請求很好(狀態204無內容), ,但是當服務器用另一個狀態碼比2xx(200,204等等)響應時,我得到了CORS問題。

如果我的服務器發送回2xx作爲狀態代碼沒問題,我們沒有CORS問題,但是如果發送另一個狀態代碼是問題。

API: Sylex(PHP框架)下運行的Nginx

前應用AngularJS - 使用的WebPack

XHR VIEW:

XHR view

控制檯CORS錯誤:

Console CORS Error

回答

0

搜索的一天,我想通了其中CORS是從哪裏來後。 Nginx的配置沒問題。 這是API。

在預檢請求(OPTIONS)服務器讓通過了請求,因爲NGINX允許的原點和頭(存取控制允許來源,訪問控制 - 允許報頭)

但是當API發回響應時,標題沒有設置。

我通過添加存取控制允許來源訪問 - 控制 - 允許報頭到響應固定它。

重要提示:我發現數據在Web瀏覽器上的200狀態代碼的響應中無法恢復。 要修復它刪除頭在別人的反應增加(5XX,4XX,等..) (我不知道,如果它只是在我的情況)

我還沒有開發的API,這就是爲什麼它花了我一天的時間來弄清楚。希望我會幫助有人用這個用例:)