我正在关注“入门指南”'我有这个简单的Ext.js代码:
Ext.define('TutorialApp.view.Main', {
extend: 'Ext.container.Container',
requires:[
'Ext.tab.Panel',
'Ext.layout.container.Border'
],
xtype: 'app-main',
layout: {
type: 'border'
},
items: [{
region: 'west',
xtype: 'panel',
title: 'west',
width: 150
},{
region: 'center',
xtype: 'tabpanel',
items:[{
title: 'Center Tab 1'
}]
}],
listeners: {
afterrender: function () {
alert('hi there')
}
}
});
我想知道如何获得"警告"弹出来说,"你好,红色"哪里"红"是刚刚成功执行基本身份验证的用户。
答案 0 :(得分:1)
这取决于您是在访问整个页面时执行基本身份验证,还是仅在通过AJAX访问同一域上的受限区域的客户端应用程序上执行。
在第一种情况下,您需要服务器端将Basic auth用户名传递给客户端(否则JavaScript无法访问它)。这可以通过让服务器插入包含用户名的JavaScript的自定义位(以及可能只有服务器知道的其他有用的东西)来完成:
<script type="text/javascript">
window.CONTEXT = {
// other useful stuff
username: 'red'
}
</script>
完成上述操作后,您的提醒将是:
alert('Hi there ' + CONTEXT.username)
在第二种情况下(通过AJAX发送基本身份验证凭据),您的客户端将首先知道用户名,因此在身份验证成功后,它将知道警报中显示的名称。实际代码将取决于执行身份验证的组件,但一个好的方法是为其创建一个单例,它将具有执行身份验证的方法,告知用户是否经过身份验证以及用户名是什么。因此,您的提醒将简单地称之为:
alert('Hi there ' + TutorialApp.Auth.getUsername())