在我的网页上,可以发送 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
服务器端。