在 Jquery AJAX 调用后重定向给出错误

Redirect after Jquery AJAX call giving Error

本文关键字:出错 错误 重定向 Jquery AJAX 调用      更新时间:2023-09-26

执行AJAX调用后,使用以下代码重定向。但是,在 AJAX 完成后,它会发出错误警报;然后它的重定向。

callService($serviceUrl, $serviceName, 'POST');             
//redirecting to nextpage
window.location.href = "nextPage.html";
function callService($serviceUrl, $serviceName, $method) {
  ......
  $.ajax({
    url : $serviceUrl,
    dataType : "json",
    type : $method,
    data : $requestData,
    success : function (data) {
        switch($serviceName) {
            case 'getTopRated':     populateTopRated(data);
                        break;
            case 'GetLatestScoop':  populateLiveScoop(data);
                        break;
            .....
        }
        $.mobile.pageLoading(true);
    },
    error : function(XMLHttpRequest, textStatus, errorThrown) {
        alert("Error");
        $.mobile.pageLoading(true);
    }
  });
}

有没有办法在不修改函数的情况下解决它?

等到ajax请求完成,然后再重定向到另一个页面。由于您在调用service后立即重定向,因此request aborts然后触发error处理程序,因此您会看到来自错误处理程序的alert消息。将代码移动到内部重定向ajax success回调它将起作用。

function callService($serviceUrl, $serviceName, $method) {
  ......
  $.ajax({
    url : $serviceUrl,
    dataType : "json",
    type : $method,
    data : $requestData,
    success : function (data) {
        switch($serviceName) {
            case 'getTopRated':     populateTopRated(data);
                        break;
            case 'GetLatestScoop':  populateLiveScoop(data);
                        break;
            .....

            //redirecting to nextpage
            window.location.href = "nextPage.html";
        }
        $.mobile.pageLoading(true);
    },
    error : function(XMLHttpRequest, textStatus, errorThrown) {
        alert("Error");
        $.mobile.pageLoading(true);
    }
  });
}
相关文章: