

Laravel（5.7.0）でAPIを開発し、Angular（CLI 7.3.7）でクライアントサイドのアプリケーションを開発しました。

**ドメイン** は  
Angular: example.com  
Laravel: **api**.example.com  
とサブドメイン型にしています。

**サーバー** はxserverです。

**AngularアプリはLaravel製のAPIを叩いてデータを取得する** のですが、コンソールに

> Access to XMLHttpRequest at '<https://api.example.com/api/articles/>'  
>  from origin '<https://example.com>' has been blocked by CORS policy:  
>  Response to preflight request doesn't pass access control check:  
>  Redirect is not allowed for a preflight request.

と表示されてしまいます。

Laravel側の問題なのか、Angular側の問題なのか、htaccessなどの問題なのかわからず完全に行き詰まっている状態です。

PostmanやChromeで直接APIを叩くと正しいJSONレスポンスが帰ってきます。

参考になりそうな情報などをお持ちでしたらご教授お願いいたします。


CC BY-SA 4.0
2019-05-16T08:32:57.097
55013
2019-05-17T02:43:30.950
2019-05-17T02:01:44.217
2238
30181
question
api laravel angular cors
Preflight リクエストに関するCORSポリシーエラーについて


エラーメッセージから判断するに、クライアントがAPIを叩く際に **preflightリクエスト**
が発生し、サーバーがそれを正しくハンドリングできていないことが原因であると思われます。preflightリクエストが何かについてはこのあたり記事をご覧ください。

  * [Preflight request](https://developer.mozilla.org/ja/docs/Glossary/Preflight_request)
  * [CORS(Cross-Origin Resource Sharing)について整理してみた](https://dev.classmethod.jp/etc/about-cors/)

Laravel側でこのpreflightリクエストに対応する実装をする必要があります。「Laravel CORS
preflight」などで検索すると参考になる情報が見つかるようです。


CC BY-SA 4.0
2019-05-17T02:43:30.950
55027
2019-05-17T02:43:30.950
30079
55013
answer