XMLHttpRequest работает в режиме предварительного просмотра Adobe Air, но не скомпилировано - PullRequest
0 голосов
/ 22 августа 2010

У меня есть приложение Adobe Air, которое я создавал, используя Dreamweaver CS5 в качестве своей IDE.При предварительном просмотре приложения все работает отлично.Когда я создаю приложение и пытаюсь запустить его, первый XMLHttpRequest, который я запускаю, дает сбой.Я думаю, что это проблема безопасности, но я понятия не имею.

Я получаю сообщение о недопустимом пароле каждый раз, потому что domainCOM.status возвращает состояние 0.

ОБНОВЛЕНИЕ: Я установил приложение для просмотра XMLHttpRequest, и оно говорит, что я 'Я получаю статус 200, и я вижу правильный XML возвращается.Это меню, которое Adobe Air каким-то образом превращает статус 200 в 0.

ОБНОВЛЕНИЕ 2: если я запускаю его в режиме предварительного просмотра, я получаю

readyState 2, статус 200 readyState 3, статус 200 readyState 3, статус 200 readyState 4, статус 200

, но если я запускаю его в скомпилированной версии, я получаю только

readyState 4, статус 0

Похоже, что он ничего не делает, ноЯ могу видеть фактический XHR, выполняющий вызов и возвращающийся с использованием Fiddler2.

Очень странно.

Любая помощь / мысли будут оценены.Вот фрагмент кода:

var url = "http://open-api.domain.com/authentication.getUserToken.domain";
var vars = "v=3&appKey="+appKey+"&email="+email+"&password="+password;

var domainCOM = new XMLHttpRequest();
domainCOM.open("POST", url, true);
domainCOM.setRequestHeader ("Content-type", "application/x-www-form-urlencoded");
domainCOM.setRequestHeader ("Content-length", vars.length);
domainCOM.setRequestHeader ("Connection", "close");         

domainCOM.onreadystatechange = function() {     
   if (domainCOM.readyState == done) {
      if (domainCOM.status == ok) {
         if (domainCOM.responseText) {
            //do some stuff
         }
         else {
            window.alert('unknown error in authenticationGetUserToken.');
         }
        }
        else {               
            window.alert('Password / Userid combination is not valid.  Please correct and try again.');
        }     
    }
};
domainCOM.send(vars);
return;

Спасибо, Кейси

1 Ответ

0 голосов
/ 24 августа 2010

Всякий раз, когда я получаю код состояния 0 в веб-браузере, обычно это означает, что я делаю междоменный запрос, а браузер просто отбрасывает запрос.Загружаются ли ваши файлы JS в изолированную программную среду приложения ?Хотя я еще не пробовал, Air разрешает [междоменные запросы AJAX] в изолированной программной среде приложения, но резко ограничивает междоменные возможности страниц, загружаемых с веб-серверов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...