JQuery AJAX запрос на IOS с использованием PhoneGap - AJAX не работает - PullRequest
3 голосов
/ 10 марта 2012

У меня есть простая форма входа в систему html, развернутая в Xcode с использованием каркаса phonegap.

Когда нажата кнопка submitLogin, я затем отправил учетные данные для входа в систему, используя ajax-запрос для проверки входа в систему.Это моя функция javascript для обработки входа в систему:

function submitLoginForm (login_id, login_pass){
    //here we need to communicate with the php files in the server
    console.log ("debug 1 ");
    $.ajax({
        type: "POST",
        url: "http://192.168.1.9/serverapp/loginHandler.php",
        data: "login_id=" + login_id + "&login_password=" + login_pass,
        success: function(loginStatus){
              navigator.notification.alert ("login request successfully sent");
              console.log ("debug 2");
              if (loginStatus == "success"){
                console.log ("debug 3 ");
                location.href = "main.html";
              }
              else{
                console.log ("debug 4 ");
                location.href="index.html?errcode=1";
              }

        }
    });

   console.log ("debug 5 ");
}

После отправки формы входа в систему я мог видеть, что консоль печатала только сообщение «debug 1».Что может быть не так в этом случае?Если запрос ajax завершается неудачно, он все равно должен напечатать сообщение «debug 5», но он ничего не печатал и просто пропустил все, кроме первого сообщения отладки.

Я мог получить доступ к URL-адресу phpиз моего браузера, поэтому я уверен, что проблема не с кодом php.Я пытался провести несколько часов безрезультатно.Есть ли у вас похожая проблема с платформой Phonegap IOS, и как вы ее исправили?

1 Ответ

9 голосов
/ 10 марта 2012

Проблема решена.

Я использовал внешний файл jquery из http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js

И оказалось, что внешний URL-адрес jquery заблокирован симулятором ios,поэтому я должен поместить этот URL в белый список.

Шаги:

  • В вашем проекте XCode phonegap перейдите в папку Resources.
  • Перейдите в каталог «Файлы поддержки» и отредактируйте файл PhoneGap.plist.
  • В списке «Внешний хост» добавьте любые внешние URL-адреса, к которым вы хотите получить доступ (включая внешний URL-адрес jquery, и любой другой URL-адрес, который вы бы хотелииспользуйте в своем запросе ajax).

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

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