我阅读了描述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
。在OnFailure
或OnComplete
之一执行完毕后,将调用回调。
您可以通过以下方式“可视化”它:
|--success -> OnSuccess() -->|
OnBegin--> >--> OnComplete
|--error -> OnFailure() -->|
------------time line-------------------------->
当然,成功/错误状态需要首先返回到客户端。