微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ajax – ExtJS:使用’记住我’功能登录

我正在尝试使用非常常见的“记住我”功能创建一个简单的登录窗口.登录验证完成了 AJAX样式,因此浏览器不会记住我的输入.

我的方法是使用内置的状态功能,但如何使用它会使我感到困惑.

Ext.state.Manager.setProvider(new Ext.state.CookieProvider({
    expires: new Date(new Date().getTime()+(1000*60*60*24*7)),//7 days from Now
}));

...

{
    xtype: 'textfield',fieldLabel: 'User name',id: 'txt-username',stateful: true,stateId: 'username'
},{
    xtype: 'textfield',fieldLabel: 'Password',id: 'txt-password',inputType: 'password',stateId: 'password'
},{
    xtype: 'button',text: 'Validate',stateEvents: 'click'
}

我知道我必须执行getState方法,但是在什么组件(我的猜测是在两个文本框)?我没有意识到的另一件事是,我的点击事件如何连接到我的文本框的状态属性

不要使用状态.您正在浏览器的Cookie中以明文形式存储用户的密码.任何有权访问浏览器的人都可以读取它,并在每个请求中将其发送回服务器.

希望您正在使用某种形式的服务器端会话,并且不依赖于每个请求中存在用户身份验证信息来维护登录状态.如果是这样,那么我建议您利用大多数现代浏览器内置的密码保存功能来处理用户在任何给定会话中的初始身份验证.

为了使浏览器的密码保存功能工作,验证表单必须存在于文档首次加载页面时.此外,凭证必须以传统的(非AJAX)提交形式提交,这将提交整个页面.

您可以通过将隐藏在文档中的表单初始化,然后使用ExtJS的功能来命令现有的HTML元素,同时仍然在ExtJS UI中呈现表单.

文件的正文中:

<form id="auth-form" action="/url/of/your/login/action" method="POST">
    <input id="auth-username" type="text" name="username" class="x-hidden">
    <input id="auth-password" type="password" name="password" class="x-hidden">
    <input id="auth-submit" type="submit" class="x-hidden">
</form>

然后,在Ext.onReady中或当您显示验证表单时,构建一个使用上述表单元素的面板:

new Ext.Panel({
    el: 'auth-form',autoShow: true,layout: 'form',items: [
        {
            xtype: 'textfield',el: 'auth-username',name: 'username',fieldLabel: 'Username',anchor: '100%'
        },{
            xtype: 'textfield',el: 'auth-password',name: 'password',anchor: '100%'
        }
    ],buttons: [
        {
            text: 'Log in',handler: function() {
                Ext.get('auth-submit').dom.click();
            }
        }
    ]
});

形式的确切组成可能会有所不同.它可以内置到一个Ext.Window实例或其他任何东西.重要的是:

>用户名和密码字段通过’el’和’autoShow’配置属性使用现有的输入字段.>其中一个包含字段的面板对于现有的表单元素是一样的.>表单的提交是通过模拟点击现有的提交按钮执行的.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但是在某些特殊情况下,我们可能还需要使用IE6来访问网页。而在IE6中,我们通常会使用JavaScript来提交表单,来看一下具体操作。
PHP中的count()函数是用来计算数组或容器中元素的个数。这个函数十分方便,在编写代码时使用频率也非常高。无论你是要统计数组的长度、统计字符串中字符出现的次数还是统计对象中属性的个数,count()都可以帮助你轻松
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不刷新整个页面的情况下,向服务器发送请求并接收响应。通常来说,我们使用 AJAX 请求是为了获取后台数据,并将其展示在前端页面上。然而,有时候我们只需要
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页用户体验的技术,通过与服务器进行异步通信,实现在网页上局部刷新数据而不必整个页面刷新的功能。在实际开发中,我们经常需要从服务器端下载文件,而传统
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以在不刷新整个页面的情况下,向服务器发送请求并获取响应数据。在某些场景下,我们需要通过AJAX下载Excel文件流,以便于在前端使用或保存到本地。本文将详
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax,我们可以在不刷新整个页面的情况下向服务器发送请求并获得响应数据。而在Ajax的基础上,.get和.post是两种常用的请求方法,它们分别用于发送GET和POST请
AJAX(Asynchronous JavaScript and XML)是一种在网页上实现异步数据传输的技术。通过AJAX,网页可以在不刷新整个页面的情况下与服务器进行数据交互,提升用户体验和页面性能。在实际应用中,AJAX广泛用于表单提交、
在使用Ajax下拉加载数据的过程中,有时候会出现无法取到360度的问题。这个问题可能是由于代码逻辑的问题导致的,也有可能是网络延迟引起的。为了解决这个问题,我们需要对代码进行仔细排查,并且在合适的地方添加适当
本文将介绍Ajax和.post之间的区别。Ajax是一种用于在网页上进行异步通信的技术,能够在不刷新整个页面的情况下更新部分页面内容。.post是jQuery中的一个方法,用于向服务器发送POST请求。虽然它们都可以用于发送异步
AJAX(Asynchronous JavaScript and XML)是一种在Web页面上进行异步数据请求和交互的技术。它的出现使得页面在后台与服务器进行数据交互的同时,不需要重新加载整个页面。在网页开发中,常常需要实现文件上传功能,