码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2020-11-16 12:58:59      阅读:14      评论:0      收藏:0      [点我收藏+]

标签:csr   ora   ajax   ddl   value   必须   res   cookie   ken   

在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

标签:csr   ora   ajax   ddl   value   必须   res   cookie   ken   

原文地址:https://www.cnblogs.com/Songjunxiang/p/13946850.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!