3

显然我用

var x=ajax.....

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

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

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

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

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

4

2 回答 2

0

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

于 2012-12-14T21:32:00.563 回答
0

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

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

于 2012-12-14T21:40:26.337 回答