使用Phonegap在IOS上发出Jquery ajax请求 - Ajax无法正常工作

all*_*ace 3 jquery ios cordova

我有一个简单的html登录表单,使用phonegap框架部署在Xcode上.

单击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 ");
}
Run Code Online (Sandbox Code Playgroud)

提交登录表单后,我可以看到控制台只打印了"debug 1"消息.在这种情况下可能出现什么问题?如果ajax请求失败,它仍然应该打印"debug 5"消息,但它没有打印任何东西,只是跳过整个事情,除了第一个调试消息.

我可以从我的浏览器访问php url,所以我确定问题不在于php代码.我一直试图花几个小时没有结果.你有没有与Phonegap IOS框架类似的问题,你是如何解决它的?

all*_*ace 9

问题解决了.

我正在使用来自http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js的外部jquery文件

并且看起来外部jquery网址被ios模拟器阻止,所以我必须将该网址放在白名单中.

脚步:

  • 在您的XCode phonegap项目中,浏览Resources文件夹.
  • 转到Supporting Files目录,然后编辑PhoneGap.plist文件.
  • 在"外部主机"列表中,添加要访问的任何外部URL(包括外部jquery URL以及将在ajax请求中使用的任何其他URL).

我希望这对遇到与我相同问题的其他开发人员有用.