我正在開發一個PhoneGap(Cordova Apache)的應用程序,它向我的服務器發出一個Jquery Ajax XmlHttpRequest跨域請求。PhoneGap - Ajax XmlHttpequest在模擬器上工作|桌面瀏覽器,但不是在設備上
下面是代碼:
/*
* Create the XMLHttpRequest instance
*/
function getXDomainRequest() {
var xdr = null;
if (window.XDomainRequest) {
xdr = new XDomainRequest();
} else if (window.XMLHttpRequest) {
xdr = new XMLHttpRequest();
} else {
alert("Votre navigateur ne gère pas l'AJAX cross-domain !");
}
return xdr;
}
/*
* Load the data from menu into XMLHttpRequest and call create menu
*/
function sendData() {
var xdr = getXDomainRequest();
xdr.onload = function() {
var dcat = $.parseJSON(xdr.responseText);
createMenu(menu, dcat);
configureMenuScript();
}
xdr.open("GET", "http://preview.********.com/api/ApiProductList");
xdr.send();
}
sendData();
它在Firefox 28做工精細,IE 11和Chrome 34也做工精細的Android模擬器與AVD的Android 4.0。
在Manifest.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" />
<access origin="*" />
我也允許在上面JS腳本的CORS
$.support.cors = true;
$.mobile.allowCrossDomainPages = true;
這應該允許跨域。
- >問題是它不起作用在我的設備上。 (Android 4.2.2)我的意思是,應用程序加載良好,但是當顯示數據超出ajax請求時,它不再起作用。
也許我缺少清單或配置文件中的授權?
可惜我不能活在設備上進行調試:■
提前感謝!
nb:Windows 8.1 - PhoneGap Cordova Apache 3.4