2016-08-09 11 views
2

このエラーを示す角度2のポストリクエスト。角度2で投稿を送信するときのエラー

do_login(username: string,password: string): Observable<string> { 
    let body = JSON.stringify({"username":username,"password":password}); 
    let headers = new Headers({ 'Content-Type': 'application/json' }); 
    let options = new RequestOptions({ headers: headers }); 

    return this.http.post(this.loginUrl, body, options) 
      .map((response) => { 
      return response.json(); 
      } 
    ); 
} 

正常に機能しています。私のコードに欠けている何

enter image description here

RESTクライアント上で呼び出したときとPOST URLが正常に動作します。あなたのお手伝いをありがとう。

答えて

1

CORSのためです。あなたはサーバ側でプリフライトされたリクエストを処理しません。これは、405のステータスコードはこう言われる、

405メソッドは を許可されていないリクエストメソッドが要求されたリソースのためにサポートされていません。たとえば、POST経由でデータを提示する必要のあるフォーム上のGET要求、または読み取り専用リソース上のPUT要求です。

単純なリクエストの場合はプリフライトされていないため、GETメソッドで機能します。これは通常、サーバー側の問題ではなく、フロントエンド/ Angular2の問題です。これらの記事は、あなたが何が起こるかを理解するのに役立つ可能性があり

POST要求の前OPTIONS要求があるよう

1

CORSは、関与しています。

サーバーがOPTIONSリクエストに有効な応答を提供していないため、上記のエラーが発生します。サーバーのCORS構成を調べる必要があります。これは、上記のコードではなく、問題がある場所です。

GETが正常に動作している場合は、Access-Control-Allow-Methodsの設定

関連する問題