在JS中,使用post方法提交数据到Django后台,如果页面没有做跨站伪造,则会被浏览器拒绝访问,报错如下:
Forbidden (CSRF token missing or incorrect.): /appblog/payment
[18/Jun/2020 08:52:08] "POST /appblog/payment HTTP/1.1" 403 2513
解决方法:前端ajax请求提交CSRF token信息
<!DOCTYPE html>
<html lang="zh">
{% csrf_token %}
<head>
...
<script>
...
var csrfToken = $("[name='csrfmiddlewaretoken']").val();
//方法一
$.ajaxSetup({
data: {csrfmiddlewaretoken: csrfToken}
})
$.ajax({
url: '/payment',
type: 'post',
contentType: 'application/json;charset=utf-8',
data: data,
async: true,
//方法二
headers: {'X-CSRFToken': csrfToken},
//方法三
beforeSend: function(xhr, e) {
xhr.setRequestHeader('X-CSRFToken', csrfToken)
},




