Django默认发送请求是需要附带CSRF token的,因此如果用JQuery在前段发送请求时不附带CSRF会返回403 Forbidden错误。
解决方案
一种可行的方法是接口不要求接受CSRF,但是不推荐。
推荐的方法是从页面里获取CSRF值。可以通过document.getElementsByName('csrfmiddlewaretoken')[0].value来获取CSRF值。
以Axios举例:1
2
3
4
5
6
7
8
9
10$.ajax({
    url : url,
    type: "POST",
    data : {
        csrfmiddlewaretoken: document.getElementsByName('csrfmiddlewaretoken')[0].value},
    dataType : "json",
    success: function( data ){
        // do something
    }
});