エラー内容と状況
JavascriptからPHPを呼び出したら下記エラーが
Access to XMLHttpRequest at ‘https://ooo/xxx.php’ from origin ‘http://localhost:7000’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.
CORSについては一応理解しており、PHPファイルにも以下を追加済み
header(“Access-Control-Allow-Origin: *”);
header(“Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE”);
header(“Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept”);
header(“Content-type:application/json”);
Access-Control-Allow-Origin: * を記述しているのになぜエラーが出るか分からず、長時間はまりました。
原因と解決
エラー原因はCORSではなく、javascriptから呼び出しているPHPファイル内の構文ミスでした。ある行の末尾に「;」が抜けていました。PHPファイルを修正後、問題なく動作しました。
恐ろしい事にPHPファイルに問題がある場合にブラウザには上記の「 No ‘Access-Control-Allow-Origin’ header 」エラーメッセージが返ってくるのです。本当にアクセス権限を与え忘れている時との区別がつかないので注意が必要です。PHPはエラーが分かりづらく、扱うのが恐ろしいです。。。