带有html/js错误的Django-禁止(未设置CSRF cookie。)

带有html/js错误的Django-禁止(未设置CSRF cookie。),html,django,csrf,Html,Django,Csrf,所以我使用的是Chrome,Django版本1.9.6,Python2.7.13 我正在尝试将原始数据(音频文件)从html/js发送到django服务器,以便从.mp3格式转换为.wav格式 但是,在未设置CSRF cookie的情况下,它甚至无法访问views.py。错误 我已经尝试了几乎所有我能在网上找到的东西 我有以下视图.py和index.html index.html 音频编辑器 混淆你的音频 1.上传您的音频: 2.混淆并下载: 混淆 var文件=未定义; var

所以我使用的是Chrome,Django版本1.9.6,Python2.7.13

我正在尝试将原始数据(音频文件)从html/js发送到django服务器,以便从.mp3格式转换为.wav格式

但是,在未设置CSRF cookie的情况下,它甚至无法访问views.py。错误

我已经尝试了几乎所有我能在网上找到的东西

我有以下视图.py和index.html

index.html

音频编辑器
混淆你的音频


1.上传您的音频:


2.混淆并下载: 混淆


var文件=未定义; var audio_formats=[“mp3”,“wav”]; //使用jQuery 函数getCookie(名称){ var-cookieValue=null; if(document.cookie&&document.cookie!=''){ var cookies=document.cookie.split(“;”); 对于(变量i=0;i
事实上,发生CSRF错误是因为您没有在模板中设置CSRF cookie

您需要在模板中设置
csrf\u令牌
,如下所示:

<form action="#" method="POST">
    {% csrf_token %}
    <h3>1. Upload your audio:</h3>
    <input type="file" id="audio-file" onchange="fileAdded()"/>
    <p id="message"></p>
    <br>
    <h3>2. Obfuscate and download:</h3>
    <button id="obfuscate-button" onclick="obfuscate()">Obfuscate!   </button>
</form>

我以为我是在javascript部分中手动添加了csrf_令牌,方法是在打开之后,在发送ajax发送之前,执行setRequestHeader(“…”)。您可以确认吗?您获取并设置cookie以请求heder的方法是OK的,但您需要创建cookie,使用django,您可以使用csrf_标记或wirh the decoratorYeah来完成,但这不是仅当您直接使用html代码发送HTTP请求时才可以实现的吗?例如使用输入类型或类似的东西在呈现模板的视图中尝试@Sure_csrf_cookie。。。不起作用。所以之前,我记得在HTML端(FormPost)像您建议的代码一样尝试过它,并让javascript再次做另一篇ajax文章。我首先认为它是有效的。然后意识到JS AJAX post请求出现错误,该错误被表单post请求对HTML的影响所覆盖。所以发送了两个不同的post请求,JS部分不起作用,我想让它发生。
@ensure_csrf_cookie
def index(request):
    return render(request, 'obfuscator/index.html')