Cordova Android 4.3 Ajax Status 404

时间:2014-03-14 04:51:58

标签: android jquery ajax cordova

我正在使用Cordova 3.4.0编写Android应用。

在应用程序中,我使用jquery ...

进行以下ajax请求
$.ajax ({
  url: 'http://www.[mydomain].com/api/v1',
  type: 'GET',
  username: id,
  password: pwd,
  xhrFields: {
    withCredentials: true 
  },
})
.done (function (response) {
   doSomethng();
})
.fail (function (response) {
   console.log(response);
});

Android 4.4.x上,请求按预期工作,但是在Android 4.3(模拟器和设备)上它失败并且以下内容记录到控制台...

readystate: 4
status: 404
statusText: "error"

我在<access origin="*" />

中有config.xml

<uses-permission android:name="android.permission.INTERNET" />

AndroidManifest.xml中的

。我还可以确认请求没有进入我的Web服务,并且没有记录任何内容。

我对可能阻止请求的内容感到茫然。我知道WebView组件在4.4.x中与以前的版本不同,但我不确定它是否与它有任何关系。任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。对于遇到同样问题的人来说,这样做......

替换

$.ajax ({
url: 'http://www.[mydomain].com/api/v1',
type: 'GET',
username: id,
password: pwd,
xhrFields: {
  withCredentials: true 
}
})

$.ajax ({
url: 'http://www.messagefund.com/webresources/v1',
beforeSend: function(xhr) {
  xhr.setRequestHeader('Authorization', 'Basic ' + btoa(id + ':' + pwd));  
},
type: 'GET'
})

确认这适用于iOS 6.1 / 7.0 / 7.1,Android 4.3.x,4.4.x和Windows Phone 8。