【发布时间】:2015-06-25 05:11:08
【问题描述】:
我正在尝试使用 AJAX 将 POST 请求从 javascript 发送到 views.py。但是,我收到 403 错误,说明 csrf 令牌不存在。
为了解决这个问题,我关注了this link 并将该函数包含在我的 javascript 中。但是,我对下一步应该做什么感到困惑。
我们将不胜感激。谢谢!
【问题讨论】:
标签: jquery python ajax django post
我正在尝试使用 AJAX 将 POST 请求从 javascript 发送到 views.py。但是,我收到 403 错误,说明 csrf 令牌不存在。
为了解决这个问题,我关注了this link 并将该函数包含在我的 javascript 中。但是,我对下一步应该做什么感到困惑。
我们将不胜感激。谢谢!
【问题讨论】:
标签: jquery python ajax django post
只需在模板中的某处添加:
{% 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 =)
});
});
【讨论】: