显然我使用
var x=ajax.....
if(x){x.abort();}
但这不会导致我的php文件中的堕胎,顺便提一下,虽然该选项默认设置为ignore_user_abort(false)
意味着如果连接丢失,那么脚本将不会继续执行。
问题是它似乎继续执行代码,尽管js客户端上的ajax已中止。
如何通过js成功完成客户端和服务器端php停止的流产。
答案 0 :(得分:0)
在大多数情况下,这不是AJAX的工作方式。一旦向服务器发出请求,服务器就开始实现它。即使已将PHP设置为在客户端连接断开时停止脚本执行,但在Web服务器配置中,在实际尝试将输出发送到客户端之前,它不会进行此类检查。因此,如果您正在执行典型的AJAX类型的脚本,其中您只有一个输出事件,则客户端中止不会对服务器端产生任何影响。
答案 1 :(得分:0)
如果您需要确认某项内容已中止,则必须发送另一个请求,询问您的工作是否已完成。这意味着在您致电xhr.abort()
之后,您必须向/abort/jobId
之类的内容发送请求,以确定在完成处理之前是否能够中止。
没有神奇的方法可以保证PHP脚本在abort()
调用后立即停止。