我有2个页面,其中有注销功能...目前html页面如下所示... test1.js具有Logout功能,每当用户点击注销按钮时,就会调用Logout功能。 logout函数调用服务器中的post请求,传递会话ID和csrf标记...
问题:
在当前的设置中,我无法从页面获取csrf和会话ID,但是当我将其移动到单个页面的document.ready函数中时,它工作正常..
为什么session id和csrf函数如果是单独的...
是不可见的Page1.html
<script src="test1.js"></script>
<form id="searchform" method="post" action="Search">
<input type="hidden" name="CSRF" value="{{acsrf}}" />
<input type="hidden" name="ses_id" value="{{session_id}}" />
<div>
<input name="search_string" id="search_string" type="text">
<input id="searchbutton" name="submit" value="Search" class="input_submit" type="submit">
</div>
</form>
<ul>
<li id="logoutLink"><a href="#">Logout</a></li>
</ul>
$(document).ready(function(){
$('#logoutbutton').click(Logout)
})
Page2.html
<script src="test1.js"></script>
<ul>
<li id="logoutLink"><a href="#">Logout</a></li>
</ul>
$(document).ready(function(){
$(#logoutbutton).click(Logout)
})
test1.js
function Logout() {
$.post("Logout",
{ antiCSRF: '{{acsrf}}',
session_id: '{{session_id}}'
});
alert("You are now logged out.");
window.location = './';
}
答案 0 :(得分:0)
问题是您的test1.js
文件无法访问django模板中的值。如果你把你的javascript内联它应该工作,但添加一个外部脚本django将其视为一个静态文件。
This post可能会有所帮助