2016-04-26 13 views
0

私はAngularJsを初めて使っていますが、$ resourceを使用して渡されたHTTPステータスコードを取得する方法について本当に心配しています。私はこの工場を持っています。成功しなかったHTTPヘッダーの取得を実装しようとしました。

app.js

.factory("Resource", function ($resource, baseUrl) { 
      return $resource(baseUrl + "rest/sessionId", 
       {}, 
       {getSessionId: {method: "GET"}}, 
       get: 
      { 
       method: 'GET' 
       interceptor: { 
        response: function (response) { 
         var result = response.resource; 
         result.$status = response.status; 
         return result; 
        } 
       } 
      } 
      ); 
     }) 
+0

ヘッダーまたはステータスコードが必要ですか? – thegio

+0

ステータスコード。 – user2402107

答えて

2

あなたはAngularjsに新しいしている場合、私はあなたが$ HTTPサービスを使用することをお勧め:

https://docs.angularjs.org/api/ng/service/ $ HTTP

// Simple GET request example: 
$http({ 
    method: 'GET', 
    header:{"content-type":"text"}, 
    url: '/baseUrl' 
}).then(function successCallback(response) { 
    // this callback will be called asynchronously 
    // when the response is available 

      console.log(response.status) 

    }, function errorCallback(response) { 
    // called asynchronously if an error occurs 
    // or server returns response with an error status. 
    }); 

をそれ以外の場合はあなたが必要インターセプタを使用することができますが、私の視点では、現在、過剰です:

.factory("Resource", function ($resource, baseUrl) { 
    var resource = $resource(url, {}, { 
     get: { 
      method: 'GET' 
      interceptor: { 
       response: function(response) {  
        var result = response.resource;   
        result.$status = response.status; 
        return result; 
       } 
      } 
     }        
    }); 

return resource; 
}); 

工場から返品することができます。

+0

残念ながら、$ resourceを使用するために私のすべての工場ですでに設定されています。しかし、インターセプタは悪い考えではありません。どのように私のコードにそれを適用しますか。 – user2402107

+0

私はちょうど工場にインターセプタを追加できますか?私は本当に私の状況にどのように適用するのか分かりません。 – user2402107

+0

はい工場でそれを行うことができます – thegio

関連する問題