这是我的javascript代码,工作正常.但我喜欢保持javascript文件分离,不要用作内联脚本标记
我想在我的base.html中包含的custom.js文件中包含它.是的
{% load static from staticfiles %} {% load bootstrap3 %} {% bootstrap_javascript %} {% load bootstrap3 %} {% load static from staticfiles %} {% block content %} {% endblock %}
我无法将csrf_token
Django中当前模板中可用的static js
文件引用到该文件中.我怎么能让这个工作?
如果你想引用模板标签,那么你需要Django模板化(渲染)该文件.我不建议通过django渲染所有静态文件...
您可以将csrf_token放在一个全局变量中,然后从脚本中访问该变量.你的base.html中有这样的东西:
或者您可以从javascript文件中的cookie中提取csrftoken.请参阅此问题以获得解决方案.cookie被调用csrftoken
.您可以通过打开开发工具并查看域名的Cookie来查看它.
您可以使用以下功能从客户端的“ csrftoken” cookie访问CSRF令牌:
function getCookie(name) { var cookieValue = null; if (document.cookie && document.cookie != '') { var cookies = document.cookie.split(';'); for (var i = 0; i < cookies.length; i++) { var cookie = cookies[i].trim(); // Does this cookie string begin with the name we want? if (cookie.substring(0, name.length + 1) == (name + '=')) { cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); break; } } } return cookieValue; }
并像这样调用它:
getCookie('csrftoken');
或者,您可以仅在HTML模板中定义一个变量,然后在客户端脚本中使用该变量。