2022.5.19 ajax简单使用
作者:互联网
2022.5.19 ajax简单使用
-
ajax简介
-
前后端传输数据编码格式
-
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