Javascript 如何发送ajax请求并重定向到另一个页面
我在客户端代码中看到了以下序列:Javascript 如何发送ajax请求并重定向到另一个页面,javascript,jquery,ajax,Javascript,Jquery,Ajax,我在客户端代码中看到了以下序列: $.ajax({ url: "...", data: {}, success: function() { // I don't care about the response } }); top.location.href="http://...." 正如您所见,浏览器发送ajax请求,而不关心响应。 发送请求后,页面将使用top.location.href语句重定向到另一个url 我是javascript的新手,我
$.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完成它的长操作并将重定向行放入成功回调中 如果您想100%确定消息已被接收和处理,您应该在
success
处理程序中执行重定向
如果需要的话,这还可以让您进行错误处理——例如,如果您发出AJAX请求但由于某种原因失败了该怎么办?如果只是重定向,用户永远不会知道有问题。但是,根据应用程序的具体情况,您可能不需要关心这一点。如果您想100%确定消息已被接收和处理,您应该在
成功
处理程序中执行重定向
如果需要的话,这还可以让您进行错误处理——例如,如果您发出AJAX请求但由于某种原因失败了该怎么办?如果只是重定向,用户永远不会知道有问题。但是,根据应用程序的具体情况,您可能不需要关心这个问题。如果您只想在ajax请求成功后重定向到其他页面,那么为什么不将top.location放在success函数中,或者无论ajax成功与否,您只想重定向…将top.location写在完整参数的函数。如果您只想在ajax请求成功后重定向到其他页面,那么为什么不将top.location放在success函数中,或者如果您只想重定向,而不管ajax成功与否……将top.location写在完整参数的函数中。我说的是客户机另一方面,是否ajax功能会在浏览器上排队,并且top.location.href会在它之前运行?这就是为什么,如果您不希望它在您的ajax请求之前运行,请将其放入成功或ajax的完整参数中。查看此页我指的是客户端,是否ajax功能将在浏览器上排队,并且top.location.href将在它之前运行?这就是为什么,如果您不希望它在您的ajax请求之前运行,请将其放入成功或ajax的完整参数中。检查此页面,问题是,如果您在请求到达服务器之前重定向,那么它可能会丢失。因此,我建议至少发出AJAX请求,然后使用
setTimeout
等待一秒钟左右再重定向。但这很容易出错,因为您仍然依赖于时间——如果您的请求需要更长的时间才能返回到服务器呢?更好的方法是修改服务器处理程序,使其立即返回,并将要在服务器上运行的作业排队,以完成长期运行的任务。然后您仍然可以在客户端上使用success
处理程序。这有帮助吗?+1听起来这是最合理的做法,我在寻找一个简短的答案,比如“它会起作用”。某处我知道我不会得到它:)谢谢!!!问题是,如果在请求到达服务器之前重定向,那么它可能会丢失。因此,我建议至少发出AJAX请求,然后使用setTimeout
等待一秒钟左右再重定向。但这很容易出错,因为您仍然依赖于时间——如果您的请求需要更长的时间才能返回到服务器呢?更好的方法是修改服务器处理程序,使其立即返回,并将要在服务器上运行的作业排队,以完成长期运行的任务。然后您仍然可以在客户端上使用success
处理程序。这有帮助吗?+1听起来这是最合理的做法,我在寻找一个简短的答案,比如“它会起作用”。某处我知道我不会得到它:)谢谢!!!