javascript-重定向后的jQuery AJAX调用给出错误

进行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请求完成,然后再重定向到另一个页面.由于您在调用服务后立即重定向,因此请求中止,然后触发了错误处理程序,因此您正在从错误处理程序中看到警报消息.移动代码以在ajax成功回调内部重定向将起作用.

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);
    }
  });

}
上一篇:PHP重定向到pdf,然后导航到另一个页面?


下一篇:ruby-on-rails – 代理后面的Rails应用程序,使用SSL,将路径呈现为“http://”