内容main_content
通过 jQuery Ajax 加载到一个区域中。
该main_content
区域之外是一个login
链接。
单击此链接会在该main_content
区域中加载一个表单,该表单在提交时会使用 Beaker 执行登录授权。成功后,该main_content
区域会加载一个管理页面。
我想在授权成功后将 链接更改为login
链接。logout
有没有办法根据烧杯中的会话状态显示/隐藏 div,例如:
if (beaker.session.id) {
$('#login').hide();
$('#logout').show();
}
我会在处理成功登录的 jQuery 块中调用它,然后在处理注销的块中交换 div。
编辑
在 Firebug 中,在登录POST
响应中,我"Cookies" > "Received Cookies"
可以看到以下列表:
beaker.session.id
如果我右键单击此链接并选择"Use in Command Line"
,则在命令行区域中弹出以下内容:
$p
如果我然后在 Firebug 命令行区域中运行以下命令,我会弹出一个带有指定消息的警报:
if ($p) {alert("you have an id!")}
因此,我尝试将其添加到处理登录的代码中,但没有收到警报:
<script>
$(document).on("submit","#login", function (e) {
e.preventDefault();
$.ajax({
type: 'POST',
url: '/login',
data: $(this).serialize(),
dataType: 'json',
success: function(results) {
$("#main_content").html("");
$("#main_content").append(results.content);
href = results.title;
history.pushState('', 'New URL: '+href, href);
reinit1();
reinit2();
reinit3();
if ($p) { // <-- here is the alert
alert("Yes you have an ID!")
}
}
});
});
</script>
我得到错误:
ReferenceError: $p is not defined