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
}
});