2016-08-20 38 views
3

我在調用API時遇到了一個問題,請讓我首先解釋架構。Angular 1.5,錯誤響應狀態總是-1

所有字體端應用操作系統AngularJS基於1.5,託管在域象下面這樣: app1.mydomain.com,app2.mydomain.com,appN.mydomain.com

我有一個API(基於Symfony2的 - FOS休息),它是:

api.mydomain.com

服務器是Nginx的,PHP5(FPM),CORS開放。現在

,讓我們描述的問題:

林呼籲一些數據的API端點:

var data = {someProperty: someValue}; 
    var $p = $resource($rootScope.apiDomain + '/some/endpoint', {}, { 
     get: { 
      method: 'GET' 
     } 
    }).get(data).$promise; 
    var request = $q.all({request: $p}); 

    return request 
     .then(function (response) { 
      // code on success 
     }, function (error) { 
      // code on error 
     }); 

現在,讓我們說,服務器的響應是任何400的還是500的,然後在ResponseError(攔截)的我「已經應該得到這個代碼爲‘狀態’值

responseError: function (response) { 
    if (403 === response.status) { 
     // something on 403 
    } 
    // do something on other codes 
    return $q.reject(response); 
} 

無論哪個響應代碼是從後端服務器發回的response對象包含以下內容:

Object {data: null, status: -1, config: Object, statusText: ""} 

但是...我見過THIS ANSER,這基本上是我現在要做的有...

所以:

  1. 有什麼辦法來解決這樣的問題(我有,讓我們假設在任何方式的前面&前配置充分的可能性)
  2. 如果它不是很容易「解決」,那麼如何?
+0

這看起來像一個CORS問題。控制檯說什麼?網絡專家小組對這種迴應有何評論? –

+0

是的,它是CORS。確保你在前端和後端設置CORS,如果你谷歌的信息加載,但讓你開始繼承人類似的問題http://stackoverflow.com/questions/21455045/angularjs-http-cors-and-http-authentication – Chris

+0

謝謝對於答覆,基本上如我所說,我有CORS打開如下:[pastebin](http:// pastebin。com/aMHye04D) @JBNizet控制檯說正確的ResponseCode(即403) – kptLucek

回答

0

嗯......

我終於成功地使這個工作 - nginx.opencors配置

解決方案:

(前)

add_header 'Access-Control-Allow-Origin' "*";

ResponseObject:{data: Object, status: -1, config: Object, statusText: ""}

(後)

add_header 'Access-Control-Allow-Origin' "*" always;

ResponseObject:{data: Object, status: 403, config: Object, statusText: "Forbidden"}

相關問題