$.ajax({
type: "POST",
url: "http://localhost:8080/ChecktToken",
data: {"token": ($.cookie("uid")) },
contentType: "application/json; charset=utf-8",
dataType: "json",
cache: false,
success: function() {
},
error: function(data) {
location.href =('login.html')
},
});
如果用户在实际登录应用程序之前尝试访问任何其他页面,则上述Ajax调用用于将用户重定向到登录页面。 这完全正常,但重定向到登录页面大约需要2秒钟。
因此,例如,如果我在登录前尝试访问http://localhost:8080/index.html
,我将能够在实际重定向之前看到该页面2秒。
location.href =('login.html')
是重定向的最佳方法还是我能做得更好?
寻找建议。
答案 0 :(得分:2)
重定向页面延迟2秒是由于Ajax调用等待来自服务器的响应。如果服务器网络速度减慢,这2秒可能会增加。为防止页面加载,您需要隐藏页面,直到收到响应或错误。你可以使用beforeSend在ajax中回调来做到这一点。
$.ajax({
type: "POST",
url: "http://localhost:8080/ChecktToken",
data: {"token": ($.cookie("uid")) },
contentType: "application/json; charset=utf-8",
dataType: "json",
cache: false,
beforeSend: function() {
//Hide page till you get the response. You can use element Id which holds entire body.
$(body).hide();
},
success: function() {
$(body).show();
},
error: function(data) {
location.href =('login.html')
},
});