Проблема с LoadVars.sendAndLoad в Actionscript 2 на разных компьютерах

Я пишу очень простое флеш-приложение (AS 2), чтобы подписывать пользователей на рассылку новостей по электронной почте; способ его работы заключается в том, что он использует LoadVars для попадания в PHP-скрипт (того же домена) через POST с адресом электронной почты пользователя. Затем PHP-скрипт передает информацию в другой домен (URL-адрес почтовой рассылки) через curl для регистрации пользователя.

Пока все хорошо, и он работает примерно на 70% компьютеров, на которых он был протестирован (тестируется в прямом эфире с веб-сайта, а не локально). Однако на некоторых компьютерах вызов LoadVars.sendAndLoad не отображается, поскольку адреса электронной почты, отправленные с этих компьютеров, не отображаются в списке подписчиков. Я знаю, что PHP-скрипт по-прежнему работает на этих компьютерах, поскольку я создал базовую HTML-форму, которая действует точно так же, как приложение Flash (POST в тот же PHP-скрипт с теми же переменными и т. д.), и работает на всех компьютерах.

Вот соответствующий AS:

submit_btn.onRelease = function(){
    submitOutAnimation();
    this.enabled = false;
    var sendvar_lv:LoadVars = new LoadVars();
    var loadvar_lv:LoadVars = new LoadVars();
    loadvar_lv.onLoad = function(success:Boolean){
        gotoAndStop("successful");
    }
    sendvar_lv.email = entryField_mc.myAdd.text;
    sendvar_lv.sendAndLoad("http://notmyrealdomainname.com/passthrough.php?ck="+new Date().getTime(),loadvar_lv,"POST");
}

Может ли это быть проблемой безопасности с настройками клиента Flash? У тебя есть другие идеи? У меня сложилось впечатление, что разница в воспроизведении Flash на разных компьютерах невелика (кроме производительности), если предположить, что у них одинаковая версия flash player, и этот опыт развеивает эту иллюзию...


person justinbach    schedule 15.01.2009    source источник
comment
Ребята-спасибо за ответы. Это было связано с разрешением домена — люди, у которых возникли проблемы, переходили на www.domainname.com, а не на domainname.com, как было указано в сценарии. Теперь все лучше!   -  person justinbach    schedule 15.01.2009


Ответы (2)


Это может зависеть от того, вводит ли пользователь префикс «www», так как это будет считаться отдельным субдоменом. Если Flash находится на том же сервере, почему бы не удалить "http://notmyrealdomainname.com" и использовать относительный путь к passthrough.php?

person Chris    schedule 15.01.2009

если вы пытаетесь получить доступ к сценарию, который не находится в том же домене (даже в поддомене), вы должны поместить файл междоменной политики в корневой каталог вашего сервера (crossdomain.xml)

подробнее: http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_14213

person sugarhilllabs    schedule 15.01.2009