使用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 插件未触发完成、进度或错误