2017-12-01 10 views
0

これは非常に一般的な問題ですが、ここで他の投稿を読むのは2,3時間ですが、解決策が見つかりません。私はサーバーが応答にAccess-Control-Allow-Originヘッダーを含める必要があることを理解します。そうしないと、ブラウザはJavaScriptコードがリソースにアクセスすることを許可しません。プリフライト要求に対する応答がアクセス制御チェックに合格しない - Angular 5 + JWT OAuth

error console chrome

私は彼らがこのセキュリティポリシーによって制限されていないので、それは動作しますが、私はちょうどレスポンスヘッダが含まれていることを確認するためにそれを使用し、ポストマンから言っURLを呼び出す:

postman image

postman image with generated token

ヘッダーが存在するため、ブラウザは不平を言ってはいけないと考えました。これは角5からの呼び出しです:

let headers = new Headers(); 
headers.append('Content-Type', 'application/x-www-form-urlencoded'); 
headers.append('Accept', 'application/json'); 
headers.append('Audience', 'any'); 
let options = new RequestOptions({ headers: headers }); 

return this.http 
.post(this.apiUrl, data, options) 
.map((res: any) => { 
    if (res.success) { 
    localStorage.setItem('auth_token', res.access_token); 
    this._loggedIn = true; 
    } 
    return res.success; 
}); 

私は郵便配達所からのリクエストと同じヘッダーを設定しています。私は何かを誤解しましたか?どうすればこの問題を解決できますか?

答えて

0

これらのヘッダーをhttpのOPTIONShttps://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/OPTIONS)メソッドリクエストで返すには、サーバーが必要です。 Pythonで作成したAPIに似た問題がありましたが、これと同じ原則が適用されます。 私が理解している限り、プリフライトリクエストはOPTIONSリクエストであり、リクエストされたヘッダで応答しないと、ブラウザは意図した実際のリクエストさえしません。これは、Fiddlerや開発者ツールのネットワークタブを使用した場合、要求が出てこないことを示しています。 お手伝いをしてください。

関連する問題