我一直在研究一个phonegap应用程序,它工作得非常好,直到今天Ajax发布请求将被加载并且成功或失败回调没有被调用但是当我在浏览器上尝试它时它完全正常
有没有人遇到过这个问题,如果是这样,你是如何设法修复它的?
提前谢谢
编辑:
这是我的第一个混合应用程序,我不使用桌面应用程序。目前我只针对iOS,目标版本为3,我正在使用build
答案 0 :(得分:2)
较新版本的phonegap会自动阻止向任何服务器发出的所有请求。您需要按照说明进行操作。
添加" Cordova Whitelist Plugin"在你的config.xml中
<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:*" />
答案 1 :(得分:0)
对于拥有此功能的Android用户(我知道这不是原始问题):
我遇到了同样的问题,并花了很多时间用上面描述的各种白名单指令未成功。实际上,我的问题有所不同:我的.apk文件没有正确签名。奇怪的是,我的Android手机在试图安装.apk时没有将它踢出去:它只是在我试图进行ajax调用时就失败了。我发现了这个问题,因为Google Play拒绝接受上传。
我正在使用Adobe PhoneGap Build来创建.apk:当我将我的Android密钥库添加到构建时,问题得到解决(并且禁用了调试,我认为这不是相关的,但我不确定) 。
答案 2 :(得分:0)
它对我的工作: 在路径平台/ 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"/>