从Javascript到Python的AJAX Post请求(Django,views.py)

时间:2015-06-25 05:11:09

标签: jquery python ajax django post

我正在尝试使用AJAX从javascript向views.py发送POST请求。但是,我收到403错误,指出csrf令牌不存在。

为了解决这个问题,我跟着this link并在我的javascript中包含了该功能。但是,我对下一步应该是什么感到困惑。

任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

只需在模板中的某处添加:

{% csrf_token %}

然后在你的js文件中应该像这样:

var csrf_token;

var sendSomeAjax = function(target) {
    var requestUrl = $(target).data('url');

    return $.ajax({
        url: requestUrl,
        type: 'post',
        headers: {
            'X-CSRFToken': csrf_token
        },
        dataType: 'json'
        // also you can pass some 'data: ' here
    })
};

$(function() {
    csrf_token = $('input[name="csrfmiddlewaretoken"]').val();

    var target = $('.someSelectorWhereYouHavePassedDataUrlToYourView');
    // for example in your template <a href="#" data-url="{% url 'app_url_namespace:view_url_name' %}"</a>

    sendSomeAjax(target).success(function(data) {
        // do smth with data =)
    });
});