Android手机应用程序上的Ajax请求失败

时间:2016-06-16 12:04:23

标签: javascript jquery ajax html5 cordova

我正在开发基于移动浏览器的应用程序(HTML5 + JQuery Mobile + PhoneGap)。当我安装应用程序并登录时,登录工作正常。当我注册用户时,我被重定向回登录页面,然后我尝试登录,它失败并出现错误请求错误。随机时间2小时后或可能是4小时。当我尝试使用同一个用户登录时,系统会让我在没有任何问题的情况下登录,直到我再次创建一个新的虚拟用户并返回登录页面。登录将再次失败。我已经在ajax调用中关闭了缓存(cache:false)。

相同的场景在工作站中的任何浏览器上始终都是完美的。只有智能手机会产生问题。

这是我的代码:

function CheckLogin() {

var vaildate = ValidateForm();
if (vaildate != false) {
    "use strict";
    var wcfServiceUrl = "http://www.myService.com/myService/myService.svc/XMLService/";

    var name = $('#txtUserName');
    var password = $('#txtPassword');
    var fileData = base64_encode(name.val() + ":" + password.val()); // this is encoding and works fine.
    $.ajax({
        cache: false,
        url: wcfServiceUrl + "Login",
        type: "GET",
        processData: false,
        contentType: "application/json; charset=utf-8",
        timeout: 90000,
        dataType: "json",
        crossDomain: true,

        beforeSend: function (xhr) {
            xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            xhr.setRequestHeader("Authorization", base64_encode(name.val() + ":" + password.val()));
        },
        complete: function () {
            $.mobile.hidePageLoadingMsg();
        },

        success: function (data) {

                window.localStorage.setItem("userid", data.LoginUserResult);
                window.localStorage.setItem("loginname", name.val());
                $.mobile.page.prototype.options.domCache = true;
                window.location.href = 'web/Default.html';
        },
        error: function (xhr, status, error) {
              alert(xhr.responseText + ' ---STATUS--- ' + xhr.status);

        }
    });
}

}

0 个答案:

没有答案