【Chrome】Access to XMLHttpRequest at ‘ファイルパス’ from origin ‘null’ has been blocked by CORS policy というエラー

javascriptを用いてCSVデータの可視化を行なっていたのですが、ブラウザで表示しようとすると以下のエラーが。

Access to XMLHttpRequest at ‘ファイルパス’ from origin ‘null’ has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.

使用していたブラウザはChromeで、バージョンは74.0.3729.157でした。

原因と解決方法

どうやらChromeではローカルにあるデータファイルを読み込んで処理をし、javascriptなどで加工して表示する、というようなことをしようとするとエラーになるようです。

今回はローカルにあるCSVデータを読み込んでグラフを表示するプログラムでしたので、これに該当してしまいエラーで表示されないということが起こっていました。

Chromeではデフォルトでこのエラーが出る設定になっているようですが、ターミナルからコマンドオプションをつけてChromeを開くことで、このエラーを回避(ローカルファイルを読み込んで加工し、表示することを許可)できました。

ターミナルを開き、以下を実行。

sudo /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --args -allow-file-access-from-files

パスワードが求められるので、PCのパスワードを入力してEnter。

するとChromeの新しいウィンドウが開き、そのウィンドウで先ほどエラーになったファイルを開いてみると、エラーは出ずに表示されました。

ChromeアプリがApplicationsディレクトリ直下(デフォルトの保存場所)にない場合は適宜変更してください。

コメント