2017-01-16 7 views
0

サービス角度2 HTTP POSTをクライアント側で障害が発生したが、データがデータベースに挿入なっている

HTTPポストサービス

addUser(body: Object): Observable<any> { 
    let bodyString = JSON.stringify(body); 
    let headers = new Headers({ 'Content-Type': 'application/json' }); 
    let options = new RequestOptions({ headers: headers }); 

    return this.http.post(this.baseUrl + 'api/v3/user/Adduser', body, options) 
     .map((res: Response) => res.json()) 
     .catch((error: any) => Observable.throw(error.json().error || 'Server error')); 
} 

コンポーネント

私は、このメソッドを呼び出すと、データがデータベースに挿入されていますが、応答を取得できません。エラーブロックに入ります。エラー情報については、下の画像をご覧ください。

addUser(items: any) { 
    this.signupService.addUser(items) 
     .subscribe(response => { 
      this.eventsEmitter.broadcast('Success', 'Changes Saved Succesfully'); 
      this.router.navigate(['/login']); 
     }, 
     error => { 
      debugger; 
      this.eventsEmitter.broadcast('Error', 'Error Occured'); 
     }); 
} 

エラー情報

error

これを解決する方法がわかりません。あなたはそれが動作するように変更を教えてくださいできますか?

ウェブAPIコントローラ

これは、Web APIコントローラ

[HttpPost] 
[Route("AddUser")] 
public async Task<IHttpActionResult> AddUser([FromBody]UsersModel model) 
{ 
    try 
    { 
     await _userService.AddUser(model); 
     HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.Created); 
     return ResponseMessage(response); 
    } 
    catch (Exception ex) 
    { 
     return InternalServerError(ex); 
    } 
} 

答えて

2

は、以下の変更を行うにしてみてください。

addUser(items: any) { 
      this.signupService.addUser(items) 
       .subscribe(response => { 
        this.eventsEmitter.broadcast('Success', 'Changes Saved Succesfully'); 
        this.router.navigate(['/login']); 
       }); 
     } 

ウェブAPIコントローラ:

[HttpPost] 
     [Route("AddUser")] 
     public async Task<IHttpActionResult> AddUser([FromBody]UsersModel model) 
     { 
      try 
      { 
       await _userService.AddUser(model); 
       HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK); 
       return ResponseMessage(response); 
      } 
      catch (Exception ex) 
      { 
       return InternalServerError(ex); 
      } 
     } 

のHttpサービス:

addUser(body: Object): Observable<any> { 
      let bodyString = JSON.stringify(body); 
      let headers = new Headers({ 'Content-Type': 'application/json' }); 
      let options = new RequestOptions({ headers: headers }); 

      return this.http.post(this.baseUrl + 'api/v3/user/Adduser', body, options) 
       .map((response : Response) => { 
      if (response.status < 200 || response.status >= 300) { 
       throw new Error('This request has failed ' + response.status); 
      } 
      else { 
       return response.json(); 
      } 
     }); 
     } 
0

はあなたが必要な依存関係をインポートしていることを確認している。

import { Observable } from "rxjs/Observable"; 
import 'rxjs/add/observable/throw'; 
関連する問題