当我在同一页面中尝试使用ajax时,它可以运行。像这样;
<html>
<head>
...
</head>
<body>
....
<script>
$.ajax({
url: /test/,
method: 'POST',
headers: {'X-CSRFToken': '{{ csrf_token }}'},
data: { name: a, surname: b},
dataType: 'json',
success: function (data) {
getList(data);
}
});
</script>
</body>
</html>
当我尝试调用与外部相同的javascript时。它不起作用。为什么?
<html>
<head>
...
</head>
<body>
....
<script src="{% static 'js/test.js' %}"></script>
</body>
</html>
答案 0 :(得分:3)
将{{ csrf_token }}
作为全局变量在script
标记的HTML页面中定义为全局变量: -
var generated_csrf_token = "{{ csrf_token }}";
然后在你的.js文件中调用它,
headers: {'X-CSRFToken': generated_csrf_token},
但请确保将AJAX调用放在$(document).ready(function () {***here***}
这样您就可以在任何js文件中使用名称generated_csrf_token
访问它。
希望这会有所帮助: - )