在过去的两天里,我一直在研究这个问题,并考虑了许多其他的建议。是的,我可以让这个简单的ajax请求在phonegap应用程序中工作,无论是在android模拟器上还是在实际的android手机上。
我的phonegap版本是(使用phonegap -v) 3.0.0-0.14.3
我使用的代码是:
var url = 'http://www.thomas-bayer.com/sqlrest/CUSTOMER';
return $.ajax({
type: "GET",
url: url,
timeout: 60 * 1000
}).done(function (data) {
alert('hey');
}).fail(function (a, b, c) {
console.log(b + '|' + c);
});我在日志中得到的结果是:
在file:///android_asset/www/js/index.js:62上的错误
我将设置添加到AndroidManifest.xml中
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />我在Config.xml中有以下内容
<param name="android-package" value="org.apache.cordova.core.NetworkManager" />当我检查navigator.connection.type时,模拟器上有3G,物理电话上有wifi。
你知道还有什么会出错吗?
UPDATE:如果我在失败函数的第一个参数中记录JSON:
{"readyState":4,"status":404,"statusText":"error"}发布于 2013-08-16 04:32:14
为了使AJAX调用正常工作,您应该使用白名单域。
将这一行添加到配置文件-中:
<access origin="*" />除非另有规定,Phonegap的默认策略将阻止所有网络访问。上面的行将禁用此安全限制。您还可以更具体地允许某些域绕过此安全特性,方法是将域名包括在配置文件中,如下所示
<access origin="http://yourdomain" />发布于 2013-12-22 05:47:07
除了白名单之外,确保cors标志是真的,以支持跨源资源共享。
$.support.cors=true;请找到参考资料这里
发布于 2016-04-15 22:31:25
在使用Visual时,我有一个localhost url。我通过编辑VS项目Applicationhost.config文件并制作绑定协议的版本来解决问题,即:port: not *:port:localhost,然后通过ip地址进行访问。确保获得对端口的所有引用。
https://stackoverflow.com/questions/18263578
复制相似问题