在Django框架中使用Ajax进行POST数据提交时必须携带csrf_token

在Django框架中使用Ajax进行POST数据提交时必须携带csrf_token

csrf_token这是一种对为了防止脚本等非人为方式访问网址时的一种保护措施

前端可以使用这几种方法:

1、表单提交Post请求,隐藏字段就保存的csrf_token的值;
2、有些情况除了表单参数还有其他数据:
(1)获取表单对象,直接往表单对象添加数据,然后提交;
(2)自己组装JSON格式的数据,通过ajax发起请求,直接把csrf_token做为一个参数即可:

var post_data = {
	"name": "zhangsan",
	"age": 18,
	"csrfmiddlewaretoken": "{{ csrf_token }}"
}
12345

(3)ajax钩子函数

$.ajaxSetup({
	data: {csrfmiddlewaretoken: ‘{{ csrf_token }}‘}
});

后端可以采用这种方法:

view.py


from django.views.decorators.csrf import ensure_csrf_cookie 

@csrf_exempt 
def my_view(request):

 

from django.views.decorators.csrf import csrf_protect  
or 
from django.views.decorators.csrf import requires_csrf_token  
or
from django.views.decorators.csrf import ensure_csrf_cookie 



from django.views.decorators.csrf import requires_csrf_token  
from django.shortcuts import render,HttpResponse

@requires_csrf_token  
def my_view(request):  
c = {}  
c.update(csrf(request))  
return HttpResponse("value", c) 



在Django框架中使用Ajax进行POST数据提交时必须携带csrf_token

上一篇:CSS—— div+css


下一篇:【转】JS条件判断小技巧