Jquery:重定向页面

时间:2015-08-18 09:32:16

标签: javascript jquery ajax redirect

$.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')是重定向的最佳方法还是我能做得更好?

寻找建议。

1 个答案:

答案 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')   
    },
});