ajax 出現 error 時做跳轉但失敗?

发布于 2022-09-07 23:54:23 字数 778 浏览 23 评论 0

ajax

 error: function(jqXHR, textStatus, errorThrown) {
      errorGo(textStatus, errorThrown);
    },

errorGO()

function errorGO(status, error){
  console.log('textStatus: %s, errorThrown: %s', status, error, location, type);
  alert('Something went wrong :(');
  $.ajax('https://xx.x.com/x/query.php', {
    type: 'POST',
    data: {
      'message': status,
      'error': error
    },
    dataType: "text",
    crossDomain: true,
    success: function(){
      location.href = '/wrong';
      console.log('go /wrong');
    }
  });
  return;
}

query.php

將 status 和 error 丟到數據庫

怪異的是:確實有順利丟數據庫。但是就是沒有執行 location.href = '/wrong'; 跳轉?
這是哪裡有問題?還是說可以有更好的寫法避免這個問題?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

任谁 2022-09-14 23:54:23

根据你的代码,有两种可能:

  1. alert 是同步的,会阻止后面代码的执行,所以没有跳转
  2. 第二个 ajax 返回失败

如果你点了 alert 的弹出框没有跳转,就是第二个原因;没点弹出框当然也不会跳转,就是第一个原因。

哆啦不做梦 2022-09-14 23:54:23

楼主,你好!确认下这个请求是否成功,如果成功了,success 方法是否执行到了,可以 console.log() 下。也可以把 fail 方法放出来,执行下

清引 2022-09-14 23:54:23

你把return删了试试

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文