【问题标题】:PhoneGap - Ajax XmlHttpequest work on emulator | desktop browser but not on devicePhoneGap - Ajax XmlHttpequest 在模拟器上工作桌面浏览器但不在设备上
【发布时间】:2014-06-08 09:31:35
【问题描述】:

我正在 PhoneGap (Cordova Apache) 上开发一个应用程序,它向我的服务器发出 Jquery Ajax XmlHttpRequest 跨域请求。

代码如下:

/*
 * 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 上运行良好。它在带有 AVD android 4.0 的 android 模拟器上也运行良好。

在 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 请求中的数据时,它不再工作了。

也许我在清单或配置文件中缺少授权?

很遗憾,我无法在设备上进行实时调试:s

提前致谢!

nb:Windows 8.1 - PhoneGap Cordova Apache 3.4

【问题讨论】:

    标签: android ajax cordova xmlhttprequest xmlhttprequest-level2


    【解决方案1】:

    我发现了我的问题。其实不是因为代码错误,而是因为公司的防火墙。

    所以,基本上,上面的代码是有效的。至少这是对如何在 phonegap 上实现 XMLHttpRequest 的一个很好的回顾:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-19
      • 2023-03-23
      • 2012-12-21
      相关资源
      最近更新 更多