我在客户端代码中看到了以下序列:
$.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完成它的长时间操作并将重定向行放在成功回调中。
答案 0 :(得分:2)
如果您想100%确定收到并处理了邮件,您应该在success
处理程序中进行重定向。
如果需要,这也可以让你进行错误处理 - 例如,如果你发出AJAX请求但由于某种原因失败了怎么办?如果你只是重定向用户永远不会知道有问题。但也许您根据应用的具体情况不需要关心这一点。
答案 1 :(得分:1)
如果您只是想在ajax请求成功后重定向到其他页面,那么为什么不将top.location置于成功函数中,或者如果您只是想重定向而不管您的ajax是否成功...写下您的顶部.location在完整参数的函数中。