質問: 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 '' > > from origin '' 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レスポンスが帰ってきます。 参考になりそうな情報などをお持ちでしたらご教授お願いいたします。
回答: エラーメッセージから判断するに、クライアントがAPIを叩く際に**preflightリクエスト**が発生し、サーバーがそれを正しくハンドリングできていないことが原因であると思われます。preflightリクエストが何かについてはこのあたり記事をご覧ください。 * Preflight request * CORS(Cross-Origin Resource Sharing)について整理してみた Laravel側でこのpreflightリクエストに対応する実装をする必要があります。「Laravel CORS preflight」などで検索すると参考になる情報が見つかるようです。