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

显然我用

var x=ajax..... if(x){x.abort();} 

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

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

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

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

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

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

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