Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用yui设置Django CSRF_令牌,但控制台显示';django.request禁止(CSRF令牌丢失或不正确)';_Javascript_Python_Django_Yui_Django Csrf - Fatal编程技术网

Javascript 用yui设置Django CSRF_令牌,但控制台显示';django.request禁止(CSRF令牌丢失或不正确)';

Javascript 用yui设置Django CSRF_令牌,但控制台显示';django.request禁止(CSRF令牌丢失或不正确)';,javascript,python,django,yui,django-csrf,Javascript,Python,Django,Yui,Django Csrf,我在html中使用以下代码: <script> YUI().use('node', function(Y){ var token = Y.Node.create("{% csrf_token %}"); YUI.Env.CSRF_TOKEN = token._node.firstChild.getAttribute('value');; }); </script> 但当我提交所有数据时,控制台会显示django.request禁止(C

我在html中使用以下代码:

 <script>
  YUI().use('node', function(Y){
      var token = Y.Node.create("{% csrf_token %}");
      YUI.Env.CSRF_TOKEN = token._node.firstChild.getAttribute('value');;
  });
 </script>
但当我提交所有数据时,控制台会显示
django.request禁止(CSRF令牌丢失或不正确)。:/dashboard/send_t2_data

我随后编辑YUI.Env.CSRF_令牌。但我的代码似乎有问题。为什么要配置名为
YUI.Env.CSRF_TOKEN
的环境变量,但它无效


有人能帮我吗?非常感谢

我不是YUI专家,但您似乎忘记了使用
CSRFToken
cookie的标题
X-CSRFToken

因此,获取
csrftoken
cookie,并使用该值设置请求头
X-csrftoken
。在纯javascript中(从我的一个项目复制/粘贴):

如果我理解您的代码:

Y.io('http://10.0.3.71/dashboard/send_t2_data', {
        method: 'POST',
        data: {'name':'123456'},
        headers: {
                'Content-Type': 'application/json',
                'X-CSRFToken': getcookie('csrftoken')
        },
        on: {
            success: function(id, response) {

            },
            failure: function(id, response) {

            }
         }
});
其中函数
getcookie('csrftoken')
获取名为
csrftoken

var xhr = new XMLHttpResquest();
xhr.open('POST', YOUR-URL, YOU-DATA-AS-STRING);
xhr.setRequestHeader("X-CSRFToken", getCSRFCookie());
xhr.send(null);
Y.io('http://10.0.3.71/dashboard/send_t2_data', {
        method: 'POST',
        data: {'name':'123456'},
        headers: {
                'Content-Type': 'application/json',
                'X-CSRFToken': getcookie('csrftoken')
        },
        on: {
            success: function(id, response) {

            },
            failure: function(id, response) {

            }
         }
});