Django 403 禁止错误
Posted
技术标签:
【中文标题】Django 403 禁止错误【英文标题】:Django 403 Forbidden Error 【发布时间】:2018-02-28 07:29:10 【问题描述】:当我在同一页面中尝试 ajax 到 html 时,它可以工作。像这样;
<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>
【问题讨论】:
你在django中配置好静态文件了吗? 静态文件配置正确。我有 403 错误。 The docs have a solution for this 自动将 CSRF 令牌添加到所有 AJAX 调用中。 【参考方案1】:将 csrf_token
定义为HTML页面中script
标签中的全局变量,如下所示:-
var generated_csrf_token = " csrf_token ";
然后在你的 .js 文件中调用它,
headers: 'X-CSRFToken': generated_csrf_token,
但请确保将 AJAX 调用放在 $(document).ready(function () ***here***
中的文档就绪函数中
这样你就可以在任何js文件中使用名称generated_csrf_token
访问它。
希望这会有所帮助:-)
【讨论】:
以上是关于Django 403 禁止错误的主要内容,如果未能解决你的问题,请参考以下文章
Django/AWS - 调用 HeadObject 操作时发生错误(403):禁止
Django + ajax(jquery):http错误代码403(禁止)[关闭]