使用Phonegap的IOS上的Jquery ajax请求-Ajax不起作用

Posted

技术标签:

【中文标题】使用Phonegap的IOS上的Jquery ajax请求-Ajax不起作用【英文标题】:Jquery ajax request on IOS using Phonegap - Ajax not working 【发布时间】:2012-03-10 01:35:40 【问题描述】:

我有一个简单的 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 ");

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

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

【问题讨论】:

您的控制台日志中是否还有其他错误? 不,控制台日志只显示以下消息:2012-03-09 20:48:18.453 TestProject_IOSClient[3855:207] [INFO] debug 1 【参考方案1】:

问题解决了。

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

而且似乎外部jquery url被ios模拟器屏蔽了,所以我必须把那个url放在白名单中。

步骤:

在您的 XCode phonegap 项目中,浏览到 Resources 文件夹。 进入 Supporting Files 目录,编辑 PhoneGap.plist 文件。 在“外部主机”列表中,添加您想要添加的任何外部 URL 访问(包括外部 jquery url,以及您设置的任何其他 url 将在您的 ajax 请求中使用)。

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

【讨论】:

嗨,我在 Cordova.plist 文件中遇到了同样的问题。我像你一样引用 jquery.min.js。把它不起作用,我正在使用电话差距1.5。我可以在我的项目中添加一些额外的东西,以便我可以拨打外部电话吗?感谢您的建议

以上是关于使用Phonegap的IOS上的Jquery ajax请求-Ajax不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Jquery Mobile & Phonegap 3 上的白色闪光和过渡问题

带有数字的phonegap ios键盘仅适用于iPad上的数字字段

使用 jquery mobile 为 iOS 设置 phonegap

Phonegap 3.3.0 iOS FileSystem 插件未触发完成、进度或错误

Phonegap / Cordova:jQuery 发布到外部服务器不起作用

将横向限制在特定页面、jquery mobile、iOS、phonegap/cordova