来自Phonegap Android的AJAX请求失败

过去两天我一直在做这个工作,并且看了很多其他的build议。 是的,我可以得到这个简单的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的物理电话。

任何想法还有什么可以出错?

更新:如果我logging失败函数的第一个参数中的JSON我得到:

 {"readyState":4,"status":404,"statusText":"error"} 

Solutions Collecting From Web of "来自Phonegap Android的AJAX请求失败"

您应该将域列入白名单 ,以便您的AJAX呼叫能够正常工作。

将此行添加到configuration文件 – :

 <access origin="*" /> 

PhoneGap的默认策略阻止所有的networking访问,除非另有规定。 上述行将禁用此安全限制。 你也可以更具体地说,只允许某些域通过在configuration文件中包含域名来绕过这个安全特性

 <access origin="http://yourdomain" /> 

除白名单外,请确保Cors标志为真,以启用跨源资源共享。

 $.support.cors=true; 

请在这里find参考

我有一个本地url,因为我正在使用Visual Studio。 我解决了通过编辑VS项目Applicationhost.config文件,并使绑定协议的版本,以便它是:端口:不*:端口:本地主机,然后通过IP地址访问。 确保获得对该端口的所有引用。