2017-10-29 8 views
0

サービスでは、Web API(2)(フロントエンドの角度4アプリケーションとは別のサーバーでホストされています)情報プリフライトの応答に無効なHTTPステータスコードがあります。404 - 角度4とWeb API 2

アクションメソッドは、アプリケーションにログインした後に受け取るアクセストークンを使用して、私がやっている承認が必要です。さて、コードはマイクロソフトのエッジで正常に動作しますが、CORSの問題であると思われるクロムのプリフライトエラーが発生します。これを解決する方法がわかりません。誰かがこれで私を助けることができますか?

ここは私のコードです。

getCompanyInfo(id: string) { 
    let headers = new Headers({ 
     'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 
     'Authorization': 'Bearer ' + this.commonService.accessToken 
    }); 
    let options = new RequestOptions({ headers: headers }); 
    let getRequestUrl = this.commonService.baseUrl + 'api/getCompanyInfo'; 

    return this.http.get(getRequestUrl + '/' + id, options) 
     .map((res: any) => <CompanyInfoModel>res.json()) 
     .do(response => console.log(response)) 
     .catch(this.commonService.handleError); 
    } 

注意:これは問題なく動作します。

  1. 私はWeb APIへのアクセス許可を使用せず、ヘッダーからトークンを削除します。

  2. ヘッダーにAccessトークンの有無にかかわらずMicrosoftのエッジ。

+0

コーディングハッピー?実際に起こったかどうかはChromeの開発ツールで確認しましたか?応答のための – CBroe

+0

@CBroeのおかげで、私は私が受け取るのdevのツールをクロム - HTTPロードに失敗しました:// localhost:80に/ API/getCompanyInfo/1:プリフライトの応答が無効なHTTPステータスコード404 – Learner

+0

を持っていますが、実際のプリフライトリクエスト(OPTIONSを参照しています方法)ネットワークパネルで起こっている? – CBroe

答えて

0

以下を除いて何も働かなかった。どこでMicrosoft.Owin.Corsをインポートして、Web APIのStartup.Auth.csのConfigureAuthメソッドの先頭にこの行のコードを追加する必要がありましたか。

app.UseCors(CorsOptions.AllowAll); 

ご注意: - Web.configWebApiConfig.csからCORSを有効にするためのすべての設定を削除します。それ以外の場合は、重複した実装について不平を言います。

私は必要に応じてthis.http.get`は、まず自分自身でOPTIONS要求を行うの世話をする `を想定:-)

+0

要求されたリソースに「Access-Control-Allow-Origin」ヘッダーが存在しません。上記の行を追加してもコアを有効にするために設定ファイルに余分な設定を追加すると、重複しています。 – bomaboom

+0

@bomaboomコントローラにcoreに関連する属性もないことを確認してください。 – Learner

+0

コントローラにコアに関連する属性がありません。 BTWトークンを取得するために、私がowinパイプラインを呼び出すときにこのエラーが発生します。 – bomaboom

関連する問題