重定向url不适用于ajax同步调用

时间:2017-09-26 12:26:18

标签: jquery ajax

每当我的服务器在状态码中发送403时,我都会尝试将url重定向到signin url。

function processget_sync(data1, url1, handler)
{
    url1=server_url + url1;
    data1=JSON.stringify(data1);
    jQuery.ajax({
         type : "GET",
         url : url1,
         dataType : "json",
         contentType : "application/json; charset=utf-8",
         cache : false,
         async: false,
         statusCode: {
                403:function(){
                    redirectFunction();
                } 
        },
         success : function(ret) {
             handler(ret,null);
         },
         error : function(err) {
             handler(null,err);

         }
    }); 


function redirectFunction(){
    console.log("before redirection")
    window.location.href = "../signin/index.html";
    console.log("after redirection")
  }

在重定向之前和重定向之后,console.log都在打印。但重定向没有发生。如果我提供 async:true ,它的工作正常。

我尝试使用window.location.assign(),window.location.replace(),location.href和类似问题线程中给出的所有其他解决方案。在我的案例中似乎没有任何作用

1 个答案:

答案 0 :(得分:-1)

最初获取您的回拨价值,之后检查您的条件:

success: function(data){
  callback(data);
}
if(data == true){
 window.location.href = "../signin/index.html";
}