如果用户登录,那么ajax请求正常工作。当会话失效时,ajax返回登录屏幕,用户可以将登录屏幕视为ajax内容。是否有可能在Ext Js中添加自定义代码,这将在每个Ajax请求中运行,以检查会话是否仍然有效,如果会话无效,则JavaScript将重定向到登录页面,否则它将继续正常执行Ajax请求。是否可以在每个Ajax请求中执行自定义代码而无需手动将该代码添加到Ext Js中的每个ajax代码?
0
A
回答
2
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请求。
1
检查会话是否仍然有效应在服务器中完成。不在JavaScript中。
我们不相信客户。
0
你可以修改你的Ajax过程有两种方式:
1服务器端:在接收到的请求,检查会话 - 如果没有登录或会话过期的用户,返回一个HHTP 403(=未授权)。 2-客户端:作为ajax响应处理程序的一部分,检查错误403.如果返回,请求登录并将其发送到服务器,然后当登录成功时,重新发送原始请求。
这很简单,如果你不使用太多现成的ajax库。如果你是,看看它的功能。
相关问题
- 1. 在每个请求上执行代码
- 2. 这个JS代码是否等待AJAX请求完成?
- 3. 在ASP.NET MVC的每个请求上执行代码
- 4. Grails - 跨控制器代码,在每个请求上执行
- 5. WhatsApp的API请求代码不执行,而不是返回请求的代码
- 6. 为ASP.NET的每个请求(aspx和cshtml)执行一些代码
- 7. AJAX代码没有执行
- 8. Ajax代码没有执行
- 9. 在CRM中执行自定义代码
- 10. 为每个新线程执行代码?
- 11. 在代码中添加新行代码
- 12. 在Symfony 1.4中的每个动作之后执行代码
- 13. 您可以打开一个拉取请求,将回购代码添加到您的代码中吗?
- 14. 这个代码是否会在每次迭代中被评估?
- 15. 为每个枚举器添加代码
- 16. GA在ajax请求上跟踪代码?
- 17. ajax - Ajax代码没有执行
- 18. PHP会话和AJAX请求(来自注入的JS代码)
- 19. JS:插入JS到的jQuery/AJAX代码
- 20. 在WordPress的每页请求上执行代码
- 21. Jquery的Ajax代码和重定向代码在一个JavaScript代码
- 22. CruiseControl MSBuild在源代码中自动执行代码行
- 23. 编码和解码自定义可执行代码
- 24. 如何在每个服务请求上运行代码?
- 25. 是否有必要为每个代码块添加try catch
- 26. AJAX请求后刷新jQuery代码
- 27. 如何在Python 3.5中将自定义代码添加到HTTPStatus?
- 28. 如何自动添加代码到我创建的每个类中
- 29. 微软访问:执行子代表的每个实例代码
- 30. 重写这个ajax代码?
这是在服务器端完成的,但Ext Js就像JavaScript操作系统,所以它会更容易检查会话是否在每个Ajax请求中自动生效,而不是为每个Ajax请求编写相同的代码。 – newbie 2011-04-13 11:27:24
@newbie为什么要检查客户端?只需将一些中间件添加到服务器上的ajax处理程序,以检查会话并在出现错误时返回登录屏幕。 – Raynos 2011-04-13 12:35:56