Jquery ajax 不适用于 phonegap 应用程序
Posted
技术标签:
【中文标题】Jquery ajax 不适用于 phonegap 应用程序【英文标题】:Jquery ajax doesn't work on phonegap app 【发布时间】:2016-03-21 08:35:04 【问题描述】:我一直在开发一个 phonegap 应用程序,它一直运行良好,直到今天 Ajax 发布请求会卡住加载并且没有调用成功或失败回调,但是当我在浏览器上尝试它时,它运行良好.
有没有人遇到过这个问题,如果有,您是如何解决的?
提前谢谢你
编辑:
这是我的第一个混合应用程序,我没有使用桌面应用程序。现在我只针对 ios,目标版本是 3,我正在使用 build
【问题讨论】:
请在您的帖子中回答以下问题。因为这似乎是你关于这个主题的第一篇文章。这是您的第一个混合应用程序吗?您在使用桌面应用程序吗?您的目标平台及其目标版本是什么:android 4、5、6? iOS 7、8、9?你在使用CLI, SDK or Build 吗?请不要假设答案,请阅读链接。一旦您在帖子中回答了问题,请在 cmets 中回复,以便我知道您已在帖子中添加信息。 @jesseMonroy650 请查看帖子的编辑部分 目标版本 3? Android 和 iOS 都不再支持这些版本。 【参考方案1】:较新版本的 phonegap 会自动阻止向任何服务器发出的所有请求。您需要按照说明进行操作。
在您的 config.xml 中添加“Cordova Whitelist Plugin”
<gap:plugin name="cordova-plugin-whitelist" spec="1.1.0" />
或者干脆
<plugin name="cordova-plugin-whitelist" spec="1.1.0" />
然后尝试将以下内容放入您的 config.xml
<content src="index.html" />
上面提到的是源目录中 HTML 文件的路径。
<access origin="*" />
将允许您使用 ajax 向任何服务器发出请求。如果您想将您的应用程序限制在一个域中,请使用类似的内容。
<access origin="http://yourdomain.com" />
最后,输入以下意图
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
【讨论】:
萨拉姆·伊姆兰,你救了一条命!感谢您的评论!【参考方案2】:对于拥有此功能的 Android 用户(我知道这不是最初的问题):
我遇到了同样的问题,并且花了很多时间在上面描述的各种白名单指令上反复尝试,但都没有成功。实际上,我的问题不同:我的 .apk 文件没有正确签名。奇怪的是,我的 Android 手机在尝试安装 .apk 时并没有将其踢出:当我尝试进行 ajax 调用时它就失败了。我发现问题是因为 Google Play 拒绝接受上传。
我正在使用 Adobe PhoneGap Build 创建 .apk:当我将我的 Android 密钥库添加到构建时,问题已得到解决(并禁用了调试,我认为这不相关,但我不确定) .
【讨论】:
【参考方案3】:它对我有用: 在路径platforms/android更新文件AndroidManifest.xml:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
【讨论】:
以上是关于Jquery ajax 不适用于 phonegap 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
带有 phonegap 的 Jquery mobile 不适用于移动应用程序