2016-05-06 6 views
0

各リクエストでAuthorizationヘッダーを送信する必要があるセキュリティ保護されたAPIを使用しています。しかし私は401の応答の処理に問題があります。Angular2の認証済みウェブリクエストにエラーメッセージが表示される

次のようにAPIへの私の呼び出しが行われます。誤差の範囲内

let headers: Headers = new Headers();    
headers.append('Authorization', 'Bearer ' + {myauthtoken}); 

let request = this.http.get(Utils.getUrl('/somesecuredmethod'), { headers: headers }); 
     request.subscribe(
      result => { this.setLoginDetails(result); }, 
      error => { 
       this.loginFailed = true; 
       this.reasonLoginFailed = error; 
       return true; 
      }); 

私はしかし、私はまた

は誰もい

GET https://localhost/somesecuredmethod 401 (User not found in database.) 
クロームコンソールで以下を参照してください、応答コード401を見ることができますメッセージテキストをどのように角度で取得できるかを知っていますか?

ありがとうございました。

EDIT:

私は以前に以下のように純粋なAJAXを使用して、この同じメソッドを呼び出しているとエラーテキストを取得することができます。

$.ajax({ 
    url: baseurl + "/somesecuredmethod", 
    method: "get", 
    headers: { 'Authorization': 'Bearer ' + accessToken } 
}).done(function (data) { 
    // do something with the success 
}).fail(function (jqXHR, status, err) { 
    $("#loading_application").addClass("hidden"); 
    $("#login_failed_reason").text(err);  <--- here I can the error text shown in the dev console 
    $("#login_failed").removeClass("hidden"); 
}); 

答えて

0

それはペイロード内のテキストメッセージだ場合は、エラーにtext方法でした:

let request = this.http.get(Utils.getUrl('/somesecuredmethod'), { headers: headers }); 
request.subscribe(
    result => { this.setLoginDetails(result); }, 
    error => { 
    this.loginFailed = true; 
    this.reasonLoginFailed = error.text(); // <----- 
    return true; 
    }); 
+0

申し訳ありませんが、これは動作しませんでした。 textメソッドはundefinedを返します。私はちょうどfiddlerでリクエストを取得しました。エラーテキストはヘッダーに含まれています。 – ciantrius

関連する問題