可能出现这个问题的原因是由于 Ajax 尝试将数据发送到 Django Rest Framework,但由于缺少必要的 CSRF 验证,服务器会拒绝这个请求。要解决这个问题,可以在发送 Ajax 请求时包含 CSRF Token。
以下是用 jQuery 发送带有 CSRF Token 的 POST 请求的代码示例:
var csrftoken = jQuery("[name=csrfmiddlewaretoken]").val();
jQuery.ajax({
url: '/submit/',
type: 'POST',
data: {
'name': 'John Doe',
'email': 'john@example.com'
},
beforeSend: function(xhr, settings) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
},
success: function(response){
console.log(response);
},
error: function(xhr, status, error) {
console.log(xhr.responseText);
}
});
其中, csrftoken
是从表单中获取的 CSRF Token。在发送请求之前,我们将其设置为 X-CSRFToken
HTTP 头部。这样,服务器就能够正确地验证请求了。
上一篇:Ajax忽略URL