2016-04-18 17 views
0

私は安らかなWebApiバックエンドからデータを返すAngular 2サービスに取り組んでいます。Angular2のエラー処理

サービスを正常に処理できないようにしようとしていますが、エラー応答に予期しない情報があります。

は、ここで私は、ネットワークトラフィックを見てみると、予想通り、私は404エラーを参照してくださいコード

update(fund, transactionId:string, showToastOnError: boolean, useCorrectUrl: boolean) { 
     let options = this.getStartCall(); 
     options.headers.append("transaction-id", transactionId) 
     let url = fundsUrl + (useCorrectUrl ? "" : "breakTheUrl"); 
     return this._http.put(url, JSON.stringify(fund), options) 
      .map(res => res.json()) 
      //.retry(5) 
      .catch(errorResponse => { 
       let res = <Response>errorResponse; 
       let err = res.json(); 
       let emsg = err ? 
        (err.error ? err.error : JSON.stringify(err)) : 
        (res.statusText || 'unknown error'); 
       this._logger.log(emsg, "The fund was not updated", LogLevel.Error, showToastOnError); 
       return Observable.throw(emsg); 
      }) 
      .finally(() => this._spinnerService.hide()); 

    } 

です。

私の問題は私のキャッチ機能です。

JSON.stringify(errorResponse) 

{"_body":{"isTrusted":true},"status":200,"statusText":"Ok","headers":{},"type":3,"url":null}" 

errorResponse.json() 

bubbles: false 
cancelBubble: false 
cancelable: false 
currentTarget: XMLHttpRequest 
defaultPrevented: false 
eventPhase: 2 
isTrusted: true 
isTrusted: true 
lengthComputable: false 
loaded: 0 
path: Array[0] 
position: 0 
returnValue: true 
srcElement: XMLHttpRequest 
target: XMLHttpRequest 
timeStamp: 1460990458693 
total: 0 
totalSize: 0 
type: "error" 
__proto__: XMLHttpRequestProgressEvent 

は、私はここで何か間違ったことをやっているか、これはAngular2ベータ15のバグである:ここで

は値の私が見ているのですか?

答えて

0

ほとんどの場合、onerrorコールバックが基になるXHRオブジェクトで呼び出されると、エラーの値が発生します。ソースコードの次の行を参照してください:https://github.com/angular/angular/blob/master/modules/angular2/src/http/backends/xhr_backend.ts#L70

つまり、404ステータスコードではなく、net::ERR_NAME_NOT_RESOLVEDのようなエラーが発生するはずです。

404ステータスコードは、onloadコールバック:https://github.com/angular/angular/blob/master/modules/angular2/src/http/backends/xhr_backend.ts#L37によって処理されます。

私はbeta15でテストを行いましたが、私はあなたの問題を再現できません。

この参照:https://plnkr.co/edit/SB3KLZlbJT3wm9ATAE0R?p=previewを参照してください。

+0

フィードバックのおかげで、WebApiのバックエンドに問題があるように見えます。 URLをあなたと同じURLに変更しました。突然私は正しいエラーコードを取得していました。 – Mark

+0

あなたは大歓迎です!奇妙なことは、ネットワークトラフィックに404状態コードがあることです。 devのツール(ネットワークタブ)の意味ですか? –

+0

はい、私たちはWebApiで何か変わっているはずです – Mark