其他分享
首页 > 其他分享> > 2022.5.19 ajax简单使用

2022.5.19 ajax简单使用

作者:互联网

2022.5.19 ajax简单使用

一、ajax简介

ajax可以实现让页面不刷新的情况下可与后端进行数据交互,相当于异步提交,局部刷新;

eg:有些软件在用户注册的时候,无需点击提交也能完成数据交互,直接做出反应

ajax不是一门全新知识,本质就是一些js代码,我们学习ajax直接使用jQuery封装之后的版本(语法更加简单),使用ajax的前提必须要引入jQuery文件;

# cdn引入jquery
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>

# ajax与form表单提交数据的区别
	ajax提交数据页面不用刷新,原始数据还在,处理数据的过程中不影响页面其他操作;
    form表单提交数据页面刷新,原始数据不在,并且处理数据的过程中无法做其他操作;
    
# 案例模拟
	需求:页面上有三个input框和一个提交按钮,前两个框输入数字,点击按钮,最后一个框里面展示数字的和,并且页面不能刷新;
    <input type="text" id="i1">+
    <input type="text" id="i2">=
    <input type="text" id="i3">
    <button id="btn">计算</button>
    # 给按钮设置单击事件,使用ajax提交数据
    <script>
    $('#btn').click(function () {
        // 获取两个框里面的数据
        let i1Val = $('#i1').val();
        let i2Val = $('#i2').val();
       // 发送ajax请求传输数据
       $.ajax({
           url:'',  // 不写默认就是当前页面所在的地址
           type:'post', // 指定当前请求方式
           data:{'i1':i1Val,'i2':i2Val},  // 请求携带的数据
           success:function (args) {  // 异步回调函数 后端有回复自动触发
                                    $('#i3').val(args)
                                   }
       })
    </script>

二、前后端传输数据编码格式

form表单与ajax发送数据的区别:

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

要想正常使用传输的数据,必须按照对应的编码格式,因此使用ajax前后端传递不同数据也需要考虑编码格式;

三、ajax提交数据的多种类型

1、ajax发送json格式数据

# form表单是无法发送json格式数据的!!!
    ajax发送的数据类型一定要跟数据的编码格式一致 
        编码格式是urlencoded 
        数据格式就应该是username=jason&password=123
ps:
django后端真多json格式的数据不会做任何的处理,就在request.body内,需要我们自行处理;

# 使用ajax发送json数据
	<button id="d1">发送json格式数据</button>
    
    <script>
	$('#d1').click(function () {
        $.ajax({
            url:'',
            type:'post',  // 不写默认也是get请求
            contentType:'application/json',  // 不写默认是urlencoded编码
            data:JSON.stringify({'name':'jason','pwd':123}),  // 序列化方法
            success:function (args) {
            }
        	})
    	})
    </script>

2、ajax携带文件数据

# ajax携带文件数据,相关配置
	<input type="text" id="name">
	<input type="text" id="pwd">
	<input type="file" id="file">
	<button id="d1">发送ajax请求</button>
    
    
    
    <script>
    $("#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) {
                // 处理异步回调返回的结果
                {#window.location.href = args#}
                alert(typeof args)
                alert(args)
            }
        })
     })
	</script>

作业:

1.练习图书管理系统
2.利用ajax编写一个实时用户注册提示功能
	文本提示放在input后面即可
    <body>
    <p>username:
        <input type="text" id="d1"><span style="color: red" id="s1" ></span>
    </p>
    <p>password:
        <input type="text" id="d2"><span style="color: #ff0000" id="s2"></span>
    </p>
    <p>
        <button id="d3">提交</button>
    </p>

	<script>
    $('#d1').on('input', function (){
        let d1Val = $('#d1').val();
        let d2Val = $('#d2').val();
        $.ajax({
            url:'',
            type:'get',
            data:{'d1':d1Val,'d2':d2Val},
            success:function (args){
                if (args === '0'){
                    $('#s1').text('该用户不存在!')
                }
                else if(args === '1') {
                    $('#s1').text('验证成功')
                }
                else{}
            }
        })
    })
	</script>
	</body>
3.利用ajax编写删除功能的二次确认

标签:function,form,19,args,ajax,格式,2022.5,数据
来源: https://www.cnblogs.com/williama/p/16290857.html