django_AJax

一.Ajax简介

Ajax即Asynchronous Javascript And XML(异步JavaScript和XML)
页面不刷新的情况下可以与后端进行数据交互异步提交 局部刷新
'Ajax本质其实就是js代码封装后的jQuery版本'
# 使用Ajax前提 必须导入jQuery文件 

from表单与ajax提交数据的区别
form提交刷新页面,原始数据不存在,并数据处理过程无法做其他操作
ajax提交数据,不刷新页面,原始数据还在,处理数据过程不影响其他操作

二.Ajax使用

 $('#btn').click(function () {
                                               // 获取两个框里面的数据
            let i1Val = $('#i1').val();         # js代码获取数据
            let i2Val = $('#i2').val();
                                                // 发送ajax请求传输数据
            $.ajax({                            # ajax 代码
                url:'',                         // 不写默认就是当前页面所在的地址
                type:'post',                    // 指定当前请求方式 默认是get请求方式
                data:{'i1':i1Val,'i2':i2Val},   // 请求携带的数据
                success:function (args) {       // 异步回调函数 后端有回复自动触发
                    $('#i3').val(args)          # 接收 后端返回数据 
                }
            })
        })

三.前后端数据传输的编码格式

"""
请求体中携带编码格式
Content-Type:...
django针对不同编码方式对应的数据格式会采用不同的处理策略
"""
# form表单默认发送的编码格式
  Content-Type: application/x-www-form-urlencoded
  数据格式:username=jason&password=123            
  django后端会自动处理到:request.POST           

# form表单发送文件
  Content-Type: multipart/form-data
  数据格式:隐藏不让看                              
  django后端会自动处理:request.POST  request.FILES  

# ajax默认的编码格式
  Content-Type: application/x-www-form-urlencoded
  数据格式:username=jason&password=123              
  django后端会自动处理到:request.POST

# ajax发送文件
  Content-Type: multipart/form-data
  数据格式:隐藏不让看  
  django后端存放在:srquest.body内 也是隐藏


响应表头

四.Ajax发送json数据

# form表单是无法发送json格式数据的!!!
ajax发送的数据类型一定要跟数据的编码格式一致 
编码格式是urlencoded
json格式数据

$('#d1').click(function () {
        $.ajax({
            url:'',
            type:'post',                     // 不写默认也是get请求
            contentType:'application/json',  // 不写默认是urlencoded编码
            data:JSON.stringify({'name':'jason','pwd':123}),  // 序列化方法
            success:function (args) {
            }
        })
    })

五.Ajax携带文件数据

$("#d1").click(function () {
        // 需要利用内置js内置对象FormData
        let myFormData = new FormData();
        // 对象添加普通数据
        myFormData.append('username',$('#name').val())
        myFormData.append('password',$('#pwd').val())
        // 对象添加文件数据
        myFormData.append('my_file',$('#file')[0].files[0])
        // 发送ajax请求
        $.ajax({
            url:'',
            type:'post',
            data:myFormData,
            // 携带文件必须要指定的两个参数
            contentType:false,        # 不要任何编码操作
            processData:false,        # 不做任何处理
            success:function (args) {
                // 处理异步回调返回的结果    
            }
        })
    })

六.异步回调参数

使用ajax交互 所有的操作都不再直接影响整个页面'只是局部操作不影响大局有可能就是让你看一看'
posted @   笑舞狂歌  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示