0

各リクエストで Authorization ヘッダーを送信する必要があるセキュアな API を使用していますが、これは正常に機能しています。ただし、401 応答の処理に問題があります。

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;
            });

エラー内で応答コード 401 が表示されますが、Chrome コンソールには次のようにも表示されます

GET https://localhost/somesecuredmethod 401 (User not found in database.)

angular でメッセージテキストを取得する方法を知っている人はいますか?

ありがとう、ジョン。

編集:

以下のように純粋な 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");
});
4

1 に答える 1

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;
  });
于 2016-05-06T11:25:23.427 に答える