我正在开发基于移动浏览器的应用程序(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);
}
});
}
}