Unity crossdomain.xml

Я получаю сообщения об ошибках, связанных с файлом crossdomain.xml, и не знаю, как их решить. У меня нет проблем с доступом к URL-адресу из веб-браузера.

Из веб-браузера

http://192.168.1.116:80/locJSON.txt

возвращает мне большой фрагмент JSON красиво

Из веб-браузера

http://192.168.1.116/crossdomain.xml

возвращает мне междоменную информацию

<site-control permitted-cross-domain-policies="all"/>
<allow-access-from domain="*" to-ports="*" secure="false"/>
<allow-access-from domain="*" to-ports="*"/>
<allow-access-from domain="*"/>
<allow-http-request-headers-from domain="*"  to-ports="*"/>
<allow-http-request-headers-from domain="*"/>
<site-control permitted-cross-domain-policies="all"/>

Но внутри Unity, если я попробую следующий код, у меня возникнут проблемы.

private void QueryAIServer()
{
    string url = "http://192.168.1.116/locJSON.txt";
    WWW AIServer = new WWW(url);

    while(!AIServer.isDone) { };

    Debug.Log("Connected to AI Server!");
}

Когда я преодолею строку while, если я проверю переменную AIServer в отладчике, я увижу сообщение «System.Security.SecurityException: нет допустимой междоменной политики для разрешения доступа», нарисованное красным цветом для AIServer.bytes, AIServer. данные и AIServer.text

Кроме того, я получаю следующие сообщения в консоли. Любое понимание будет оценено.

UriFormatException: неверный URI: не удалось определить формат URI.

MonoForks.System.Uri..ctor (System.String uriString, Boolean dontEscape) MonoForks.System.Uri..ctor (System.String uriString) (удаленный вызов-вызов-с-проверкой оболочки) MonoForks.System.Uri:.ctor ( string) MonoForks.System.Windows.Interop.PluginHost.get_SourceUri () MonoForks.System.Windows.Browser.Net.CrossDomainPolicyManager.GetCachedWebPolicy (MonoForks.System.Uri uri) UnityEngine.UnityCrossDomainHelper.GetSecurityPolicy (System.String requesturi_string, IPolicyProvider policyProvider) UnityEngine.UnityCrossDomainHelper.GetSecurityPolicy (System.String requesturi_string) UnityEngine.WWW:get_isDone() PlayEditorMain:QuerryAIServer() (в Assets/Scripts/Play Editor Scripts/Menu Scripts/PlayEditorMain.cs:556) PlayEditorMain:ButtonPressed(GameObject) (в Ресурсы/Скрипты/Сценарии редактора воспроизведения/Сценарии меню/PlayEditorMain.cs:262) MainMenuButton:OnClick() (в Ресурсы/Скрипты/Сценарии редактора воспроизведения/Кнопки меню/MainMenuButton.cs:23) UnityEngine.GameObject:SendMessage(String, Object , SendMessageOptions) UIC mera:Notify(GameObject, String, Object) (в Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:765) UICamera:ProcessTouch(Boolean, Boolean) (в Assets/3rd Party/NGUI/Scripts/UI/ UICamera.cs:1435) UICamera:ProcessMouse() (в Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:1063) UICamera:Update() (в Assets/3rd Party/NGUI/Scripts/UI/UICamera. КС:909)

You are trying to load data from a www stream which had the following error when downloading. Rejected because no crossdomain.xml policy file was found UnityEngine.WWW:get_assetBundle() PlayEditorMain:QuerryAIServer() (at Assets/Scripts/Play Editor Scripts/Menu Scripts/PlayEditorMain.cs:559) PlayEditorMain:ButtonPressed(GameObject) (at Assets/Scripts/Play Editor Scripts/Menu Scripts/PlayEditorMain.cs:262) MainMenuButton:OnClick() (at Assets/Scripts/Play Editor Scripts/Menu Buttons/MainMenuButton.cs:23) UnityEngine.GameObject:SendMessage(String, Object, SendMessageOptions) UICamera:Notify(GameObject, String, Object) (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:765) UICamera:ProcessTouch(Boolean, Boolean) (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:1435) UICamera:ProcessMouse() (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:1063) UICamera:Update() (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:909)

Unable to determine the audio type from the URL (http://192.168.1.116/locJSON.txt) . Please specify the type. UnityEngine.WWW:get_audioClip() PlayEditorMain:QuerryAIServer() (at Assets/Scripts/Play Editor Scripts/Menu Scripts/PlayEditorMain.cs:559) PlayEditorMain:ButtonPressed(GameObject) (at Assets/Scripts/Play Editor Scripts/Menu Scripts/PlayEditorMain.cs:262) MainMenuButton:OnClick() (at Assets/Scripts/Play Editor Scripts/Menu Buttons/MainMenuButton.cs:23) UnityEngine.GameObject:SendMessage(String, Object, SendMessageOptions) UICamera:Notify(GameObject, String, Object) (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:765) UICamera:ProcessTouch(Boolean, Boolean) (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:1435) UICamera:ProcessMouse() (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:1063) UICamera:Update() (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:909)

Streaming of 'ogg' on this platform is not supported UnityEngine.WWW:get_oggVorbis() PlayEditorMain:QuerryAIServer() (at Assets/Scripts/Play Editor Scripts/Menu Scripts/PlayEditorMain.cs:559) PlayEditorMain:ButtonPressed(GameObject) (at Assets/Scripts/Play Editor Scripts/Menu Scripts/PlayEditorMain.cs:262) MainMenuButton:OnClick() (at Assets/Scripts/Play Editor Scripts/Menu Buttons/MainMenuButton.cs:23) UnityEngine.GameObject:SendMessage(String, Object, SendMessageOptions) UICamera:Notify(GameObject, String, Object) (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:765) UICamera:ProcessTouch(Boolean, Boolean) (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:1435) UICamera:ProcessMouse() (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:1063) UICamera:Update() (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:909)

You are trying to load data from a www stream which had the following error when downloading. Rejected because no crossdomain.xml policy file was found UnityEngine.WWW:get_size() PlayEditorMain:QuerryAIServer() (at Assets/Scripts/Play Editor Scripts/Menu Scripts/PlayEditorMain.cs:559) PlayEditorMain:ButtonPressed(GameObject) (at Assets/Scripts/Play Editor Scripts/Menu Scripts/PlayEditorMain.cs:262) MainMenuButton:OnClick() (at Assets/Scripts/Play Editor Scripts/Menu Buttons/MainMenuButton.cs:23) UnityEngine.GameObject:SendMessage(String, Object, SendMessageOptions) UICamera:Notify(GameObject, String, Object) (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:765) UICamera:ProcessTouch(Boolean, Boolean) (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:1435) UICamera:ProcessMouse() (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:1063) UICamera:Update() (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:909)

You are trying to load data from a www stream which had the following error when downloading. Rejected because no crossdomain.xml policy file was found UnityEngine.WWW:get_texture() PlayEditorMain:QuerryAIServer() (at Assets/Scripts/Play Editor Scripts/Menu Scripts/PlayEditorMain.cs:559) PlayEditorMain:ButtonPressed(GameObject) (at Assets/Scripts/Play Editor Scripts/Menu Scripts/PlayEditorMain.cs:262) MainMenuButton:OnClick() (at Assets/Scripts/Play Editor Scripts/Menu Buttons/MainMenuButton.cs:23) UnityEngine.GameObject:SendMessage(String, Object, SendMessageOptions) UICamera:Notify(GameObject, String, Object) (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:765) UICamera:ProcessTouch(Boolean, Boolean) (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:1435) UICamera:ProcessMouse() (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:1063) UICamera:Update() (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:909)

You are trying to load data from a www stream which had the following error when downloading. Rejected because no crossdomain.xml policy file was found UnityEngine.WWW:get_textureNonReadable() PlayEditorMain:QuerryAIServer() (at Assets/Scripts/Play Editor Scripts/Menu Scripts/PlayEditorMain.cs:559) PlayEditorMain:ButtonPressed(GameObject) (at Assets/Scripts/Play Editor Scripts/Menu Scripts/PlayEditorMain.cs:262) MainMenuButton:OnClick() (at Assets/Scripts/Play Editor Scripts/Menu Buttons/MainMenuButton.cs:23) UnityEngine.GameObject:SendMessage(String, Object, SendMessageOptions) UICamera:Notify(GameObject, String, Object) (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:765) UICamera:ProcessTouch(Boolean, Boolean) (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:1435) UICamera:ProcessMouse() (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:1063) UICamera:Update() (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:909)

Unable to determine the audio type from the URL (http://192.168.1.116/locJSON.txt) . Please specify the type. UnityEngine.WWW:get_audioClip() PlayEditorMain:QuerryAIServer() (at Assets/Scripts/Play Editor Scripts/Menu Scripts/PlayEditorMain.cs:559) PlayEditorMain:ButtonPressed(GameObject) (at Assets/Scripts/Play Editor Scripts/Menu Scripts/PlayEditorMain.cs:262) MainMenuButton:OnClick() (at Assets/Scripts/Play Editor Scripts/Menu Buttons/MainMenuButton.cs:23) UnityEngine.GameObject:SendMessage(String, Object, SendMessageOptions) UICamera:Notify(GameObject, String, Object) (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:765) UICamera:ProcessTouch(Boolean, Boolean) (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:1435) UICamera:ProcessMouse() (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:1063) UICamera:Update() (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:909)

Connected to AI Server! UnityEngine.Debug:Log(Object) PlayEditorMain:QuerryAIServer() (at Assets/Scripts/Play Editor Scripts/Menu Scripts/PlayEditorMain.cs:558) PlayEditorMain:ButtonPressed(GameObject) (at Assets/Scripts/Play Editor Scripts/Menu Scripts/PlayEditorMain.cs:262) MainMenuButton:OnClick() (at Assets/Scripts/Play Editor Scripts/Menu Buttons/MainMenuButton.cs:23) UnityEngine.GameObject:SendMessage(String, Object, SendMessageOptions) UICamera:Notify(GameObject, String, Object) (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:765) UICamera:ProcessTouch(Boolean, Boolean) (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:1435) UICamera:ProcessMouse() (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:1063) UICamera:Update() (at Assets/3rd Party/NGUI/Scripts/UI/UICamera.cs:909)

person Dalanchoo    schedule 26.08.2014    source источник
comment
эй, ты получил ответ, я столкнулся с той же проблемой   -  person Muhammad Faizan Khan    schedule 03.11.2016


Ответы (2)


Одна вещь, которая меня несколько раз привлекала, - это не сохранение в кодировке UTF-8. Некоторые редакторы делают это, если вы открыли его, скажем, в блокноте и повторно сохранили после внесения изменений. Блокнот (по крайней мере, версия в Windows 8.1) имеет поле выбора для проверки типа кодировки, который вы хотите использовать при сохранении, и по умолчанию используется ANSI.

Изменить: я хочу убедиться в одной вещи - и я уверен, что вы просто пропустили это, но просто для ясности теги в кросс-домене должны быть окружены <cross-domain-policy></cross-domain-policy> и самый первый элемент, как и во всех XML-файлах. быть <?xml version="1.0" ?> всего..

<?xml version="1.0" ?>
<cross-domain-policy>
    <site-control permitted-cross-domain-policies="all"/>
    <allow-access-from domain="*" to-ports="*" secure="false"/>
    <allow-access-from domain="*" to-ports="*"/>
    <allow-access-from domain="*"/>
    <allow-http-request-headers-from domain="*"  to-ports="*"/>
    <allow-http-request-headers-from domain="*"/>
    <site-control permitted-cross-domain-policies="all"/>
</cross-domain-policy>
person aqez    schedule 26.08.2014
comment
Это файл <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> <cross-domain-policy> <site-control permitted-cross-domain-policies="all"/> <allow-access-from domain="*" to-ports="*" secure="false"/> <allow-access-from domain="*" to-ports="*"/> <allow-access-from domain="*"/> <allow-http-request-headers-from domain="*" to-ports="*"/> <allow-http-request-headers-from domain="*"/> <site-control permitted-cross-domain-policies="all"/> </cross-domain-policy> - person Dalanchoo; 27.08.2014
comment
Я не использовал многие типы элементов, которые вы используете в этом файле, но стоит спросить, работает ли более простая версия файла, такая как <?xml version="1.0" ?> <cross-domain-policy> <allow-access-from domain="*" /> </cross-domain-policy> - person aqez; 27.08.2014
comment
ваш более простой файл дал те же результаты. - person Dalanchoo; 27.08.2014
comment
@Dalanchoo ты нашел ответ? пожалуйста, напишите ответ на свой вопрос, я почти получаю ту же ошибку - person Muhammad Faizan Khan; 03.11.2016

Попробуйте этот стандарт разрешить все crossdomain.xml:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>

   <allow-access-from domain="*" secure="false" />
</cross-domain-policy>
person Cameron    schedule 11.09.2014