Django里用jQuery发POST请求时携带CSRF参数

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

参考资料

0%