Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Android 2.3.x上的jQuery post错误(在Android v4.x上工作)_Javascript_Android_Jquery_Cordova - Fatal编程技术网

Javascript Android 2.3.x上的jQuery post错误(在Android v4.x上工作)

Javascript Android 2.3.x上的jQuery post错误(在Android v4.x上工作),javascript,android,jquery,cordova,Javascript,Android,Jquery,Cordova,我正在用PhoneGap2.5编写我的第一个Android应用程序;该应用程序非常简单,只需读取本地gps坐标并将其与一些设备数据(uuid,android版本)和一些输入字段一起发送到远程服务器。 当应用程序启动时,它向远程服务器发送一种“设备注册”,并接收一些数据 到目前为止,我只使用jQueryV1.9.1,没有jQueryMobile或其他javascript库 这是密码 onDeviceReady: function() { $.support.cors = true;

我正在用PhoneGap2.5编写我的第一个Android应用程序;该应用程序非常简单,只需读取本地gps坐标并将其与一些设备数据(uuid,android版本)和一些输入字段一起发送到远程服务器。 当应用程序启动时,它向远程服务器发送一种“设备注册”,并接收一些数据

到目前为止,我只使用jQueryV1.9.1,没有jQueryMobile或其他javascript库

这是密码

onDeviceReady: function() {
    $.support.cors = true;
    app.deviceRegister();
    // navigator.splashscreen.hide();
},

deviceRegister: function() {
    var params = {
        'device_uuid': window.device.uuid,
        'device_platform': window.device.platform,
        'device_model': window.device.model,
        'device_version': window.device.version,
    };
    var url = app.data.url + 'devices/register'; // app.data.url defined elsewhere
    $.ajax(url, {
        type: "POST",
        data: params,
        timeout: 5000,
        success: function(response) {
            // updates html with received data
            $("#user_badge").html(response.badge);
            $("#user_name").html(response.full_name);
        },
        error: function(x, t, m) {
            if (t === 'timeout') {
                navigator.notification.alert('timeout error');
            } else {
                navigator.notification.alert('error: ' + t);
            }
        },
        dataType: 'json'
    });
},
当应用到AndroidV4.x(模拟器和真实设备)时,它可以完美地工作,数据被发送到远程服务器,响应得到正确管理

问题是如果我在Android v2.3.x(模拟器和真实设备)上运行该应用程序:不会发送任何数据,我得到的只是一个带有“error:error”的警报

我假设安卓2.3和jQuery1.9之间存在一些问题,但我就是不知道问题出在哪里


猜猜看?

你的params对象的末尾有一个额外的。

我打赌
app.data.url
是一个安全的url(https)。我也有同样的问题,必须为低于4的Android版本编写一个例外,以使用正常的、不安全的http连接。从未找到关于它为什么不起作用的答案。

尝试检查此线程上的解决方案我尝试在$.ajax选项中添加“async:false”,但没有成功。我还尝试了较旧的jquery版本(1.6.4、1.7.2、1.8.3),但没有成功。还有其他猜测吗?您是否更改了config.xml中的access origin参数?