昨日内容回顾 ajax

Ajax

异步提交,局部刷新

Ajax其实就是JS自带的功能,不是一门新的技术点,JQuery封装之后的版本

# 基础语法
$.ajax({
    url:"",  # 控制数据的提交地址
    type:"",  # 控制请求的方式默认是get请求
    data:{},  # 组织提交的数据
    success:function(形参){
        
        异步回调函数
    }
})

数据编码格式

	Content-Type
urlencoded
	不支持携带文件数据,form表单和Ajax默认的编码格式
	数据格式:name=jsaon&pwd=123&hobby=DBJ
	Django后端统一处理到request.POST中

formdata
    数据格式:无法查阅
    支持携带文件数据,form表单可以指定的编码格式
    Django后端自动将文件数据处理到request.FILES,普通数据request.POST中
application/jason
	数据格式:json格式
    发送json格式数据,ajax可以指定的编码格式
	Django后端不会处理,都存放在request.body中(bytes类型)需要自己处理
	语法注意事项:
		data:JSON.stringfy({'name':'jason','pwd':123}),
    	contentType:'application/json	'
FormData对象
	ajax携带文件数据的方式
    	data:formDataObj,
        contentType:false,
        processData:false,
   Django针对携带文件数据的对象会处理成request.POST,request.FILES

ajax携带文件数据


$('#d3').click(function () {
        #  1.产生内置对象
        let formData = new FormData();
        #  2.添加普通数据
        formData.append('username',$('#d1').val())
        #  3.添加文件数据
        formData.append('file', $('#d2')[0].files[0])
        #  4.发送ajax请求
        $.ajax({
            url:'', 
            type:'post', 
            data:formData,
            contentType:false,  # 不使用任何编码
            processData:false,  #  不处理数据对象
            success:function (args) {
                
            }
        })
    })

回调函数

后端跟ajax交互,不应该返回页面,通常情况下都是返回jason格式数据
前端针对HttpResponse和JsonResponse返回的json格式数据吃力策略不同

	针对JsonResponse会自动反序列化
	针对HttpResponse不会自动反序列化,需要添加参数 dataType:'JSON'

序列化

def ser(request):
    #拿到用户表里面的所有的用户对象
    user_list=models.User.objects.all()
    #导入内置序列化模块
    from django.core import serializers
    #调用该模块下的方法,第一个参数是你想以什么样的方式序列化你的数据
    ret=serializers.serialize('json',user_list)
    return HttpResponse(ret)
posted @   瓮小辉  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示