我阅读了一篇描述Ajax.Beginform回调属性的在线文档,如下所示: -
现在我无法理解“ 在请求完成时调用的含义,无论请求是成功还是失败 ”。让我们举几个例子: -
现在,如果我从我的应用程序返回http 401错误,将调用哪个脚本,我会假设OnFailure ?,或者因为我返回结果,将调用onsuccess?
< / LI>如果引发了一个UN-handeled异常,那么我假设将调用OnFailure,但是OnComplete也会被激活吗?
由于 谢谢
答案 0 :(得分:1)
这意味着在请求完成时将调用给定的函数。您的请求可能由于某种原因成功或失败,但无论请求是成功还是失败,都将执行给定的功能。
实施例: 你定义一个函数,让我们称之为回调。
案例1:您发送请求,成功到达服务器,并在响应后执行回调。
案例2:您发送的请求不成功,例如目标不存在。在这种情况下也会执行回调。
答案 1 :(得分:1)
假设服务器发回响应(404,500,200,302等),将始终有3个回调连续。 OnBegin
回调是第一个被调用的回调。然后发送请求,服务器发回确认。如果请求成功,则会调用OnSuccess
;如果没有,OnFailure
被调用。完成OnSuccess
或OnFailure
之一后,将调用OnComplete
回调。
您可以通过这种方式“可视化”:
|--success -> OnSuccess() -->|
OnBegin--> >--> OnComplete
|--error -> OnFailure() -->|
------------time line-------------------------->
当然,成功/错误状态需要先回到客户端。