Jquery $.ajax()可以开火吗;“成功”;在请求完成之前?

Jquery $.ajax()可以开火吗;“成功”;在请求完成之前?,jquery,ajax,Jquery,Ajax,假设我正在$.post()-将AJAX请求添加到执行以下操作的脚本: echo "foo"; sleep(60); // block request for some time echo "bar"; 原始脚本在看到“foo”时是否会触发success函数,或者当ajax脚本在“bar”被回显后最终完成时是否会触发success函数?在“bar”之后:)或者更准确地说,当它接收到状态代码为200的HTTP报头时。这意味着脚本已完成执行。当响应到达时,可能会有多个readystatechang

假设我正在
$.post()
-将AJAX请求添加到执行以下操作的脚本:

echo "foo";
sleep(60);  // block request for some time
echo "bar";

原始脚本在看到“foo”时是否会触发success函数,或者当ajax脚本在“bar”被回显后最终完成时是否会触发success函数?

在“bar”之后:)或者更准确地说,当它接收到状态代码为200的HTTP报头时。这意味着脚本已完成执行。

当响应到达时,可能会有多个
readystatechange
事件,但是
readyState
只有在响应完成时才会更改为4(已加载)


当发生
readystatechange
事件且
readyState
属性为4(已加载)且
status
属性显示成功的状态代码(例如200)时,jQuery库将调用
success
方法.

您不能在每个函数之后通过console.log查看吗?谢谢-假设我想返回一个响应,但继续在AJAX脚本中执行一些工作-我该如何处理?现在,我的脚本要做60秒以上的工作,但大约5秒后就有足够的信息返回响应。原始脚本将其视为超时,因此,即使工作正在进行,源脚本也会将其视为超时,在某些情况下甚至会提交重复的ajax请求。@Matthew我建议让服务器向第二个脚本发送一个http请求,超时时间很小(0),并捕获超时错误,然后返回ajax。然后,您的第二个脚本继续处理。在我看来,它对每个2xx或304
状态执行
success
。我错了吗?@Ragnarokkr:是的,你是对的,有几个成功的状态码。啊,好的。你让我怀疑。好。谢谢:)