我正在使用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" />
。我还可以确认请求没有进入我的Web服务,并且没有记录任何内容。
我对可能阻止请求的内容感到茫然。我知道WebView组件在4.4.x
中与以前的版本不同,但我不确定它是否与它有任何关系。任何帮助,将不胜感激。
答案 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。