Ajax相关
传收数据示例
$.ajax({
url: '/test/',
type: 'get',
data: {
name: 'alex',
age: 84,
hobby: JSON.stringify(['抽烟', '喝酒', '画大饼']) // 使用JSON.stringify对数据进行序列化
},
success: function (data) {
console.log(data)
}
})
// 在视图函数里通过json反序列化,获得数据
// views.py
// import json
// json.loads(reuqest.GET.get('hobby'))
使用ajax上传文件
// html
<input type='file' id='f1'>
<button id='b1'>上传</button>
// js
<script src='jQuery.js'></script>
<script>
$('#b1').click(function(){
var formData = new FormData();
formData.append('file',$("#f1")[0].files[0])
$.ajax({
url:'/index/',
type:'post',
data:formData,
processData:false,
contentType:false,
success:function(data){
alert('上传成功')
}
})
})
</script>
ajax通过django的csrf校验
-
前提条件 :确保有csrftoken的cookie
-
方法一 :HTML文件导入
-
方法二 :给视图加上ensure_csrf_cookie装饰器
from django.views.decorators.csrf import csrf_exempt,csrf_protect, ensure_csrf_cookie csrf_exempt # 加在视图上,表示该视图不需要进行csrf校验 csrf_protect # 加在视图上,表示该视图需要进行csrf校验 ensure_csrf_cookie # 加在视图上,确保返回时,设置csrftoken的cookie
-
-
方法
- 给data中添加csrfmiddlewaretoken的键值对
- 给headers中添加x-csrftoken的请求头