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

Jquery 重定向url不适用于ajax同步调用,jquery,ajax,Jquery,Ajax,每当我的服务器发送403状态码时,我试图将url重定向到登录url function processget_sync(data1, url1, handler) { url1=server_url + url1; data1=JSON.stringify(data1); jQuery.ajax({ type : "GET", url : url1, dataType : "json", content

每当我的服务器发送403状态码时,我试图将url重定向到登录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和类似问题线程中给出的所有其他解决方案。在我的情况下,似乎什么都不起作用

首先获取回拨值,然后像这样检查您的状况:

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

后退一步,想想为什么你会想使用同步调用?这几乎是不必要的,它会给用户带来可怕的用户体验(锁定浏览器,这可能会让他们认为它已经崩溃,如果请求花费的时间比正常时间长),甚至在某些浏览器中被弃用,因此您可以合理地预期它在将来完全停止工作。您认为需要同步呼叫的原因是什么?您正在正确地实现回调以获得成功/错误,因此这不是像我有时看到的那样对异步代码流的误解。此特定函数在我的项目中的多个位置使用,因此如果我现在使调用异步,我需要检查所有需要时间的影响,因此,我想知道是否有一个快速修复方法,可以同步发送请求。在这种情况下,我现在会在“error”回调中测试特定的状态代码;else处理程序(null,err);我这样添加并删除了状态码,但它仍然不起作用。你能定义“不起作用”吗?这一点线索都没有。控制台中有错误消息吗?代码是否按预期命中“错误”回调?err.status是否设置为您期望的状态?重定向命令是否执行(如果执行,会发生什么情况)?Yuk。最好检查“错误”回调。然后,当代码稍后变为异步时,它不会因为这个超出范围的代码而崩溃。