使用ajax将数据发布到django视图不起作用

时间:2018-10-07 19:23:04

标签: python ajax django

我有一个视图,我想使用ajax方法发布数据,但它没有进入视图以打印内容。

我的JavaScript代码:

$("#id").click(aa);
var aa= function() {
var id= $("#id");

$.ajax({
    url: "ajax/id",
    method: "POST",
    data: { user: id, csrfmiddlewaretoken: csrftoken },
    context: document.body
}).done(function(data) {

    alert("Success");

}).fail(function(returnedText) {
    console.log(returnedText.responseText);
});

};

我的Django视图:

def id(request):
    print("aa");
    users = request.POST['user']

我的网址:

path('/ajax/id', views.id, name='id')

1 个答案:

答案 0 :(得分:0)

您可以改为使用请求标头

const Cookies = require('js-cookie');

(($) => {
  const csrfSafeMethod = method => /^(GET|HEAD|OPTIONS|TRACE)$/.test(method);
  $.ajaxSetup({
    beforeSend(xhr, settings) {
      if (!csrfSafeMethod(settings.method) && !this.crossDomain) {
        xhr.setRequestHeader('X-CSRFToken', Cookies.get('csrftoken'));
      }
    },
  });
})(window.jQuery);

错误是使用url: "/ajax/id",而不是url:“ ajax / id”,并且直接访问POST字典,id也是内置函数,请尝试重命名您的函数,以免使内置函数黯然失色。

users = request.POST.get('user')

您的路径不