Phonegap升级打破了Ajax调用

时间:2013-01-16 19:31:10

标签: ajax cordova

我最近更新了我使用的PhoneGap版本,从0.9.5到Cordova-1.7.0。由于升级,我不再能够通过Android设备的Ajax调用将数据发布到我的服务器,尽管它在浏览器中工作正常。

返回的jqXHR状态代码为0 - 表示网络检查存在问题,但我能够从服务器检索数据而没有任何问题。

数据在0.9.5和1.7.0之间发布到服务器的方式有什么变化吗?

我的ajax电话如下:

    $.ajax({
                type: "POST",
                url: "https://"+serverUrl + "process.php",
                data: {data:passData, key:appKey},
                crossDomain: true,
                cache: false,
                dataType: "text",
                timeout: 5000,
                success: onSuccess,
                error: onError
            });                 

            function onError(jqXHR, exception) {
                if (jqXHR.status === 0) {
                    alert('Not connect.\n Verify Network.');
                } else if (jqXHR.status == 404) {
                    alert('Requested page not found. [404]');
                } else if (jqXHR.status == 500) {
                    alert('Internal Server Error [500].');
                } else if (exception === 'parsererror') {
                    alert('Requested JSON parse failed.');
                } else if (exception === 'timeout') {
                    alert('Time out error.');
                } else if (exception === 'abort') {
                    alert('Ajax request aborted.');
                } else {
                    alert('Uncaught Error.\n' + jqXHR.responseText);
                }

                showAlert("Failed to transmit, saved for re-transmital.", "Alert", 1);
}

function onSuccess(data){
 alert('successfully transmitted');
}

更新 在我的通话中添加了“async:false”并且它有效。 请参阅以下更新代码:

$.ajax({
                type: "POST",
                url: "https://"+serverUrl + "process.php",
                data: {data:passData, key:appKey},
                crossDomain: true,
                cache: false,
async: false,
                dataType: "text",
                timeout: 5000,
                success: onSuccess,
                error: onError
            });   

0 个答案:

没有答案