为什么在Ajax POST调用中使用csrftoken后,我一直在Django中获得403错误? &g



我正在做一个Ajax POST请求来获取新闻文章。我在报头中放了一个csrftoken,但我仍然得到一个403错误。我在网上看过,并尝试了许多解决方案,但我一直得到403错误。为什么会这样?

$('#search-articles').on('submit', function(event) {
event.preventDefault();
document.getElementById("loading").style.display = "block";
document.getElementById("search-bar").style.display = "none";
document.getElementById("articles").style.display = "none";

function getCookie(name) {
var cookieValue = null;
if (document.cookie && document.cookie !== '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = jQuery.trim(cookies[i]);
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) === (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
$.ajax({
url: "{% url 'stocks_sites:get_news_articles' %}",
type: "POST",
data: {
"q": document.getElementById("search-articles").value,
csrfmiddlewaretoken:$("input[name=csrfmiddlewaretoken]").val()
},
headers: {
"X-CSRFToken": getCookie("csrftoken"),  // don't forget to include the 'getCookie' function
},

success: function(response) {
document.getElementById("loading").style.display = "none";
document.getElementById("search-bar").style.display = "block";
document.getElementById("articles").style.display = "block";
$("#search-bar").html(response[0]);             
$("#articles").html(response[1]);
}
})
})

try

$.ajax({
url: "{% url 'stocks_sites:get_news_articles' %}",
type: "POST",
data: {

'csrfmiddlewaretoken': document.csrftoken,
},


success: function(response) {
document.getElementById("loading").style.display = "none";
document.getElementById("search-bar").style.display = "block";
document.getElementById("articles").style.display = "block";
$("#search-bar").html(response[0]);             
$("#articles").html(response[1]);
}
})
})

相关内容

最新更新