読者です 読者をやめる 読者になる 読者になる

いんでぃーづ

個人でゲーム開発してる上で吸収したモノたち紹介。UnityからGIMPまでなんでも。デザインとかゲーム論まで語っちゃうよ的なアレ。

MENU
{スポンサーリンク}

Unity : ネットワークアクセスでエラー [SecurityException: No valid crossdomain policy available to allow access]

Unity

タイトルのエラーはWebPlayerとしてビルドしたスタンドアロンアプリか、WebPlayer向け設定の状態でエディターで実行すると発生します。

メニューの File → Build Settings を開くと次のようになっているはずです。

f:id:sugar_affordance:20160517182253p:plain

てっとりばやく解決したい場合、アクセスするサーバのルードディレクトリに以下のファイルを置きます。

名前はcrossdomain.xmlです。

<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*"/>
</cross-domain-policy>

これはなんですか

例えば作ったWebPlayerゲームを http://myapp.test というURLに置いている場合、 http://target.test というドメインにアクセスするには、target.test側で、 「myapp.testに置かれているアプリからアクセスしていいですよ」 という許可を出す必要があります。 これをCORSと言います。

上記のJSONファイルで、myapp.testドメインからのアクセス許可をしているわけです。

特定のドメインのみ許可したい場合、crossdomain.xmlの domain="*" の部分を書き換えればいけます。

Amazon.co.jpアソシエイト