2016-11-02 4 views
0

私はまだ問題がありますAngularJS 1.5.3です。Angularjsは.catch()内のstatusTextとコードを表示していません

私の$httpリクエストでの401の権限がありませんエラーが発生しました。

ここにコードです。私が得た認証トークンなしのコードのこの小さな作品を実行した後

... 
var req = { 
    url: 'http://localhost:8080/news', 
    method: 'GET' 
}; 
$http(req) 
.then(successHandler) 
.catch(function(message) { 
    console.log(message); 
    if(message.status === "401") { 
     // logic here 
    } 
}); 
... 

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

ブラウザは知っているが401で、console.log前にエラーに表示します。 heckが

enter image description here

何が起こっていますか?

+0

追加データを入力する必要があります。 '-1'のステータスは通常、タイムアウトまたはキャンセルされたクエリの結果です。 CORSのリクエストをしていますか?リクエストはどのように見えますか? – PerfectPixel

+0

うん、おそらくCORSの問題です。私はバックエンドとして 'スリムなフレームワーク'を使用しています。要求は単純です:URLとGETメソッド。権限ヘッダーは目的によって空白のままです。 –

答えて

0

documentation of angular's $httpangular's $q (angular promising)をご覧ください。 .then() -methodを試してください.2つのパラメータが必要です。最初はhttp-successの場合はコールバック、http-errorの場合は2番目のパラメータです。だからあなたのような何か書くことができます。さらに$http.get()あなたmethod: 'GET'promise.catch(errorCallback)に速記である

$http.get('http://localhost:8080/api/news').then(
    function(resp) { 
    //whatever happens when everything is fine 
    }, function(error) { 
    console.log(message); 
    if(error === "401") { 
     // logic here 
    } 
    } 
); 

promise.then(null, errorCallback)

敬具の省略形です。

+0

すでに試してみましたが、まだエラーがあります! :) ありがとうございました。 –

+1

'.then()'も '.catch()'も '$ http'のメンバーではありません。代わりに '$ http(...)'を呼び出すと、メンバ関数 '.then()'と '.catch()'を持つ約束が返されます。 – PerfectPixel

+0

私の答えを更新しました、ありがとうございます。 –

関連する問題