使用Zoo Visitor ajax登录或Ajax Auth,我很好地管理了EE的ajax登录。 记录用户时,如何仅刷新包含以下内容的div:欢迎用户记录。
<div class="Welcome"><span>{username}</span> <a href="/logout">Logout</a></div><br />
这是Zoo Visitor Ajax登录脚本:
$(document).ready(function(){
$('#loginForm').ajaxForm({
dataType: 'json',
success: function(data) {
if (data.success) {
alert('You are now logged in. You can add additional actions in the js script.');
} else {
alert('Failed with the following errors: '+data.errors.login);
}
}
});
});
我想我必须在里面输入一个javascript代码:
alert('You are now logged in. You can add additional actions in the js script.');
我还在学习javascript,使用
setInterval(function(){
document.getElementById('info').innerHTML =
这是一个很好的方法?有人有一些提示吗? 可以使用表达式引擎函数??
感谢,
斯特凡
答案 0 :(得分:2)
假设您的<div class="Welcome">...</div>
已经存在,您将替换
alert('You are now logged in. You can add additional actions in the js script.');
使用
$('div.Welcome').html('<span>Welcome...</span> <a href="/logout">Logout</a>');
但请注意,我删除了{username}
。当用户在注销时访问该页面时,他们没有用户名。当他们通过AJAX登录时,页面不会刷新,因此用户名仍然保留在服务器端。 Zoo Visitor也不会返回任何成员数据。
如果您尝试使用类似app的东西,那么使用常规登录过程可能比使用AJAX更好。
如果您仍然希望坚持使用JavaScript,那么您可以做的一件事就是创建一个通过JSON返回数据的模板,例如
{exp:http_header content_type="application/json"}
{ "username": "{username}" }
(注意使用http_header插件。)
成功登录后,您将使用AJAX检查该模板,然后确认结果。如果username
有一个length
,那么您就知道此人已登录,您可以更新您的欢迎div。
或者......您可能想尝试通过Ben Croker通过Open API登录。显然,它的身份验证会返回您要查找的成员数据,请参阅http://docs.eeopenapi.apiary.io/#authentication