2016-07-28 16 views
0

私はweb apiバックエンドとangular2フロントエンドを持つプロジェクトに取り組んでいます。私はangular2のサーバーエラーを示す問題があります。サーバーエラーが発生するたびにCORSエラーがスローされます。angular2のウェブAPI例外を表示

Here is my sample api 

public IActionResult Post([FromBody] Visitor model) 
{ 
    if (model == null) throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NoContent) 
    { 
     ReasonPhrase = "Missing model in post" 
    }); 
    _registerService.register(model); 
    return Ok(model);  
} 


And here is my angular2 service 


addVisit(visit: Visit) { 

let siteId = visit.siteId; 
let body = JSON.stringify(visit); 
let headers = new Headers({ 'Content-Type': 'application/json' }); 
let options = new RequestOptions({ headers: headers }); 

return this.authHttp 
    .post(`${this._visitorsUrl}` + siteId, body, options) 
    .map(res => { 
     res.json(); 
     console.log("map: " + JSON.stringify(res.json())); 
    }) 
    .catch(err => console.log(err)); 

}

モデルは、それがエラー502またはCORSエラーを返すヌルですが、モデルは、それは200

私の問題は、どのように私はというエラーを表示することができているRETRNますnullでないときサーバーリターン。

答えて

0

は、あなたがnullをチェックするどこかに

error => this.errorMessage = <any>error; 

のようなものを追加できませんでしたか?私はそれを.mapの購読の中で使っていますが、これはあなたが探しているもののようなものだと私は信じていますか?

+0

私はすでにそれをしていますが、まだ動作していません。 handleError(エラー:any){ let errMsg =(error.message)? error.message: error.status? '$ {error.status} - $ {error.statusText}': 'サーバーエラー'; console.error(errMsg); //代わりにコンソールにログする return Observable.throw(errMsg); } –

+0

ここでは、基本的に同じことを行っている別の例があります。それ以外の理由でgetCountriesByRegion()が表示されない場合はチェックしてください。 http://www.waynehong.com/javascript/angular-2-service-example-typescript/ –

0

あなたはInternalServerErrorへの応答を変換します。次に、角度に誤差のSTATUSTEXTプロパティでエラーを表示することができます

throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError) 
      { 
       ReasonPhrase = "Missing model in post", 
       Content = new StringContent("Missing Model in post") 
      }); 

以下のコードスニペットに示すように、コンテンツ返す必要があります。

+0

私は試しましたが、適切なエラーメッセージを返しませんでした –

+0

何を返しましたか? – Jigar

+0

XMLHttpRequestは読み込めません500 –

関連する問題