0

我在客户端代码中看到了以下序列:

$.ajax({
    url: "...",
    data: {},
    success: function() {
    // I don't care about the response
    }
});

top.location.href="http://...." 

如您所见,浏览器发送一个 ajax 请求,并不关心响应。在它发送请求后,页面使用top.location.href语句重定向到另一个 url。

我是 javascript 的新手,我不确定是否保证发送 ajax 请求?

是否有另一种方法来获取此发送和忘记并重定向ajax 行为?

编辑

澄清一下,我不想等待这个 ajax 完成它的长时间操作并将重定向行放在成功回调中。

4

2 回答 2

2

如果您想 100% 确定消息已被接收和处理,您应该在success处理程序中进行重定向。

如果需要,这也将使您能够进行错误处理 - 例如,如果您发出 AJAX 请求但由于某种原因失败了怎么办?如果你只是重定向用户永远不会知道有问题。但是,根据您的应用程序的具体情况,您可能不需要关心这一点。

于 2012-07-30T15:21:32.117 回答
1

如果您只想在 ajax 请求成功后重定向到其他页面,那么为什么不将您的 top.location 放入成功函数中,或者如果您只想重定向,无论您的 ajax 是否成功...写您的 top.location完整参数的函数。

于 2012-07-30T15:22:08.153 回答