ajax abort不会在服务器上中止,仅用于客户端

时间:2012-12-14 21:29:12

标签: php jquery ajax

显然我使用

var x=ajax.....

if(x){x.abort();}

但这不会导致我的php文件中的堕胎,顺便提一下,虽然该选项默认设置为ignore_user_abort(false)

意味着如果连接丢失,那么脚本将不会继续执行。

问题是它似乎继续执行代码,尽管js客户端上的ajax已中止。

如何通过js成功完成客户端和服务器端php停止的流产。

2 个答案:

答案 0 :(得分:0)

在大多数情况下,这不是AJAX的工作方式。一旦向服务器发出请求,服务器就开始实现它。即使已将PHP设置为在客户端连接断开时停止脚本执行,但在Web服务器配置中,在实际尝试将输出发送到客户端之前,它不会进行此类检查。因此,如果您正在执行典型的AJAX类型的脚本,其中您只有一个输出事件,则客户端中止不会对服务器端产生任何影响。

答案 1 :(得分:0)

如果您需要确认某项内容已中止,则必须发送另一个请求,询问您的工作是否已完成。这意味着在您致电xhr.abort()之后,您必须向/abort/jobId之类的内容发送请求,以确定在完成处理之前是否能够中止。

没有神奇的方法可以保证PHP脚本在abort()调用后立即停止。