0

在我的网页上,可以发送 ajax 请求,然后跳转到另一个页面,这意味着 AJAX 请求无关紧要并且被浏览器中止。从这些 jquery AJAX 请求之一返回到错误处理可能是:

readyState = 0
responseText: ""
status=0

但是,请注意错误处理程序甚至可能不会被调用。这取决于浏览器何时中止请求以及用户何时选择进入另一个页面。如果调用它,则使用上述参数调用它。

这是它变得多汁的地方。当位置设置为另一个域时,从 AJAX 请求返回 302 重定向时会发生类似的响应。浏览器(IE 和 FF)会破坏 302 并使用相同的信息调用错误处理程序:

readyState = 0
responseText: ""
status=0

我知道这是一个 302,使用 fiddler 将位置设置为另一个域。但是把提琴手拿走,你看到的一切都在上面。

我需要能够区分

  • 由于用户转到另一个页面而中止的 ajax 请求
  • 由于重定向到另一个域而中止的 ajax 请求

但是,如果我得到两者的完全相同的信息,我就不能。

有小费吗?我可以检查 DOM 中的窗口对象或其他东西吗?注意:我无法预测请求何时返回 302。我也看不到location header服务器端。

4

0 回答 0