2016-11-15 15 views
1

私は既存のWeb API(ASP.NETコア)を使用して、角度2で新しいWebアプリケーションを実装していますが、私はHTTP Postに問題があります。すべての種類の情報を検索した後、私はまだこの問題を解決することができませんし、私のWeb APIは角度投稿からnullパラメータを受け取ります。角2 httpのポストnull Web Apiのコア

ここで何が間違っているかを確認する必要があります。

posted(event) { 
@Injectable() 
export class httpTestComponent { 

constructor(public http: Http) { 

}; 

posted(event) { 
    var user: UserViewModel = { 
     name: "angularUser", 
     password: "pw", 
     email: "angularMail" 
    } 
    let pedido = JSON.stringify(user); 

    let headers = new Headers({ 'Content-Type': 'application/json' }); 
    let options = new RequestOptions({ headers: headers }); 

    this.http.post('http://localhost:10832/api/Account/Register', { pedido }, options) 
     .map(this.extractData).catch(this.handleError).subscribe(); 
}; 

のViewModel:

export interface UserViewModel { 
name: string, 
password: string, 
email: string, 

}

ウェブAPI:

[HttpPost] 
    [Route("Register")] 
    public void Register([FromBody] UserRegisterViewModel userVm) 
    { 
    } 

のViewModelのWeb API:

は、ここに私の角度2のコードです

誰かが私に間違っていると教えてもらえますか?

+0

時間:開発ツールを使用してブラウザからサーバーに送信されたものキャプチャし、あなたが全体のhttpリクエストを確認できなければならないことを確認してください。それがうまくいかない場合は、郵便配達員またはフィドラーを使用して、クライアントコード外で実行するようにしてください。 – Igor

答えて

7

JSON.stringify()を追加する理由はありません。削除してください。

EDIT:

どちらかJSON.stringify()を削除するか、または身体データの周りにカッコを削除します。

this.http.post('http://localhost:10832/api/Account/Register', pedido, options) 

角度は、あなたがそれをこのように残せば、オブジェクトとして既にシリアル化されたJSON文字列をシリアル化しようとすると、それが理由ですあなたは問題を抱えています。

ソースコード:あなたのコードをデバッグするLink

+0

angular2のマニュアルと例では、そうでない場合の記述です。クレームを取り戻すためにいくつかの文書を投稿できますか? – Igor

+0

あなたが ''身体の周りのカッコを取り除いてください.... 'と書いたものはすべて正しいです。その点の前のすべてが正確ではありません。あなたがそれを削除すると、答えはOPの質問/問題を解決するはずです。 – Igor

+0

それは私の問題でした!非常に感謝している仲間、私は中括弧を削除し、すべてが正常に実行されます! –

関連する問題