函数无法识别页面变量

时间:2014-05-05 16:30:19

标签: javascript jquery django session bottle

我有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 = './';

}

1 个答案:

答案 0 :(得分:0)

问题是您的test1.js文件无法访问django模板中的值。如果你把你的javascript内联它应该工作,但添加一个外部脚本django将其视为一个静态文件。

This post可能会有所帮助