我阅读了描述Ajax.Beginform回调属性的在线文档,如下所示:


OnBegin(在jquert中是beforeSend):-在发送请求之前立即调用
OnComplete(在jQuery中是完整的):-如果请求成功,则调用
OnFailure(在jQuery中是错误):-如果请求失败则调用
OnSuccess(在jquery中是成功的):-在请求完成时调用,而不管请求是成功还是失败


现在,我不明白“无论请求成功还是失败,请求完成时都会调用”的含义。让我们举个例子:


现在,如果我从应用程序返回http 401错误,将调用哪个脚本,我假设是OnFailure?,或者由于我正在返回结果,因此将调用onsuccess?
并且如果引发了联合国处理的异常,那么我假设将调用OnFailure,但是OnComplete也会触发吗?


谢谢
谢谢

最佳答案

假设服务器发送回一个响应(404、500、200、302等),则将始终有3个回调序列。 OnBegin回调是第一个被调用的。然后发送请求,服务器将回送确认。如果请求成功,则调用OnSuccess;否则,将调用OnFailure。如果没有,则调用OnSuccess。在OnFailureOnComplete之一执行完毕后,将调用回调。

您可以通过以下方式“可视化”它:

          |--success -> OnSuccess() -->|
OnBegin-->                              >--> OnComplete
          |--error   -> OnFailure() -->|

------------time line-------------------------->


当然,成功/错误状态需要首先返回到客户端。

09-10 17:40