キノコが何か作るブログ

ゲーム・ドット絵・アプリなどを作ります

MENU

NW.jsだとCORS policyに引っ掛からないことに気づく

phina.jsでassetに音源を読み込ませようとするとこの様なエラーが出てゲームが始まりません。

f:id:mizukinoko:20200110183903p:plain

音源を読み込む際にCORS policyというものに引っ掛かってしまうらしいです。

CORS policyについて調べましたがよくわかりませんでした。別オリジンのリソースにアクセスするための制約らしいですが、なぜ音源だけそのような扱いになるのかが僕にはわかりませんでした。

CORS policyを回避する簡単な方法はローカルサーバーを立てることですが、アプリ化したい僕としてはあまり使いたくない方法でした。

なので色々と調べていたらこんな記事を見つけました。

Electronよりも手軽なNW.jsでデスクトップアプリ開発入門 - WPJ

以下記事一部抜粋

ローカルファイルに関する同一生成元ポリシー(same-origin policy)の制約がない。ファイルシステムからローカルファイルを開く際に同じフォルダーに置かれていないファイルへのXMLHttpRequestリクエストはブラウザーにブロックされるが、NW.jsアプリでは無効にできる

same-origin policyを無効にできると書いてあります。

same-origin policyとCORS policyの違いがよくわかりませんが、なんか出来そうな気がするので試してみると・・・

f:id:mizukinoko:20200110190345p:plain

起動できました。BGMもしっかり流れます。NW.jsであればCORS policyを気にすることなくゲームが作れるようです。

あとはセーブデータの管理ですが、これも後ほど試してみようと思います。たぶんできるんじゃないかと思います。

できなければウェブストレージで何とかします。

 

今回はこの辺で。それでは。

プライバシーポリシー