如何解决是否可以在每个Ajax请求中执行自定义代码,而无需手动将代码添加到Ext Js中的每个ajax代码中?
| 如果用户已登录,则ajax请求可以正常工作。当会话无效时,ajax返回登录屏幕,用户可以将登录屏幕视为ajax内容。是否可以在Ext Js中添加自定义代码,该代码将在每个ajax请求中运行,以检查会话是否仍然有效,如果会话无效,则JavaScript将重定向到登录页面,否则它将继续正常执行Ajax请求。解决方法
Ext.ajax是单例,因此您可以为所有请求错误定义全局处理程序。
如果未授权用户,则服务器端代码将需要返回HTTP 403或类似信息。将其放在您的代码中(仅一次):
Ext.Ajax.on(\'requestexception\',function(conn,response,options) {
if (response.status == 403) {
Ext.MessageBox.alert(\'Authentication\',\'You are not logged in.\');
/* you can display a login box or something here */
}
};
如果AJAX请求由于会话已过期而失败,则可以在代码中优雅地处理它。
options参数包含AJAX请求选项,因此,如果为用户提供一个登录框并重新进行身份验证,则可以重新提交他们自动发出的原始AJAX请求。该过程对于进行AJAX请求的所有其余现有代码应该是无缝的。
,应该在服务器中检查会话是否仍然有效。不在JavaScript中。
我们不信任客户。
,您可以通过两种方式修改ajax流程:
1-服务器端:接收请求后,检查会话-如果用户未登录或会话过期,则返回HHTP 403(=未授权)。
2-客户端:作为ajax响应处理程序的一部分,检查错误403。如果返回错误,则要求登录并将其发送到服务器,然后在登录成功后重新发送原始请求。
如果您不使用太多现成的ajax库,那很容易。如果是这样,请查看其功能。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。