0
我想從javascript向使用AJAX的views.py發送POST請求。但是,我收到一個403錯誤,指出csrf標記不存在。AJAX從Javascript發佈到Python的請求(Django,views.py)
爲了解決這個問題,我遵循this link,並在我的JavaScript中包含該功能。然而,我很困惑下一步應該是什麼。
任何援助將不勝感激。謝謝!
我想從javascript向使用AJAX的views.py發送POST請求。但是,我收到一個403錯誤,指出csrf標記不存在。AJAX從Javascript發佈到Python的請求(Django,views.py)
爲了解決這個問題,我遵循this link,並在我的JavaScript中包含該功能。然而,我很困惑下一步應該是什麼。
任何援助將不勝感激。謝謝!
只需在您的模板添加的地方:
{% 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 =)
});
});
感謝madzohan。對我而言,只是將csrf token的密鑰從'csrftoken'更改爲'csrfmiddlewaretoken'就完成了這項工作。 –