2017-10-21 15 views
-1

ヘッダー付きのリクエストをLaravelパスポートを使用してLaravel 5.3 APIに送信しようとしています。返されたヘッダー:私は4番の角度でlaravel apiにヘッダー付きhttpリクエストを送信できません

405(メソッド許可されていません)プリフライトリクエスト に
応答は、アクセス制御チェックに合格しない:いいえ「アクセス制御 - 許可 - 起源」 ヘッダが要求されたリソース上に存在します。 Origin 'http://localhost:4200'はアクセスできません。
myfrontend.mydomain.com

header('Access-Control-Allow-Origin', '*')<br> 
    header('Access-Control-Allow-Methods', 'GET, POST, PATCH, PUT, DELETE, OPTIONS')<br> 
    header('Access-Control-Allow-Headers', 'Origin, Content-Type, Authorization , X-Auth-Token');<br> 

と私のフロントエンドとAPI異なるアドレスを持っている:応答 は、私はLaravelのCORSミドルウェアが持つHTTPステータスコード405

を持っていましたmyapi.mydomain.com

私の角度HTTPリクエストヘッダーは:

let headers = new Headers({ 
     'Content-Type': 'application/json; charset=utf-8',<br> 
     'Authorization': 'LaravelReturnedAuthToken',<br> 
     'Accept': 'application/json; charset=utf-8',<br> 
     'Access-Control-Allow-Origin': '*',<br> 
     'Access-Control-Allow-Methods': 'PUT, GET, POST, DELETE, OPTIONS',<br> 
     'Access-Control-Allow-Headers': 'Content-Type, x-xsrf-token',<br> 
}); 

let options = new RequestOptions({headers: headers}); 

Angular HTTPリクエストヘッダーを削除しても、すべて動作します。 私は何が間違っているのか分かりません。

API:Laravel 5.3
フロントエンド:アンギュラ4

+0

' 405:MDN上でこの程度

より。あなたのリクエストは 'Content-Type:application/json'と' Authorization'ヘッダをリクエストに追加するので、あなたのリクエストからCORSプリフライトOPTIONSリクエストを実行する前にブラウザが自動的に(自動的に)OPTIONSリクエストを行います。自分のコード。そのプリフライトが失敗した場合、ブラウザはコード内のリクエストを試行することになりません。 https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Preflighted_requests – sideshowbarker

答えて

0

はちょうどあなたの要求からこれらのAccess-Controlヘッダを削除します。彼らは要求と共に送られることを意図されていませんが、むしろ応答で返されなければなりません。 `あなたがOPTIONS要求を処理するために、あなたのPHPサーバーを設定する必要がありますを示している(メソッド許可されていません)

https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

+0

を参照してください:let headers = new Headers({ 'Content-Type': 'application/json; charset = '承認': 'LaravelReturnedAuthToken'、 '承認': 'アプリケーション/ json; charset = utf-8'、 });それはまだ動作しません! – MajidAhmadi

+0

APIはおそらくあなたのように設定されていないでしょう。クロムのネットワークタブでこれをチェックしてください。そこに完全なリクエストとレスポンスのヘッダーが表示されます。私はそれらの 'Access-Control'ヘッダがレスポンスに欠けていると思います。ここで説明したエラーは次のように表示されます: 'No 'Access-Control-Allow-Origin'ヘッダーが要求されたリソースに存在します。 –

関連する問題