ajax 是Asynchronous Javascript And XML四个单词的简写,粗略翻译为:异步的Javascript 和 XML. 还有一种用于前后端数据交互的手段是用的 form表单 ,与ajax不同的是,form表单提交后会跳转到提交地址,ajax是不会影响当前页面的显示的,不会刷新,不会跳转,是在javascript中完成数据的发送与接收(好处就是,在不刷新页面的情况下可以局部更新某一块)。 下面模拟一下发送(get): 下面模拟一下发送(post): readyState: 1.什么时候需要使用ajax?
一、初识 ajax
1.异步:代表的是前端向后台发起请求,让后端处理完成,然后再返回一段数据,前端拿到返回的数据后需要做一系列的处理,前端处理这些数据就是异步的行为。(那一瞬间你没偶数据,等后端处理完成才能回头处理你的事件)
2.javascript: 这就不多说了,你懂的。
3.XML:标记语言,写法和html还很类似,但XML名字可以随便取。XML用来存放数据,前端用XML的格式发送数据给后端,后端也发送XML格式数据给前端,前段也好处理(相当于中介,用于数据交互的文件格式)。但是现在,我们大部分用Json数据格式(前后端数据交互的手段),前端发送字符串,后端拿上,处理成对象的形式。
Json格式如下://类似写对象的键值对写法,属性名必须为用双引号引起来的字符串 let arr = '[{"name" : "xioakonglong","age" : 22},{"name" : "lanbai","age" : 20},{"name" : "Tony","age" : 24}]'
ajax最典型的应用是:你注册一个百度账号,在填写手机号的时候,你的数据会被ajax(前端)提交到后端,然后从数据库中发现你已经注册过了,后端发送对应的数据给前端,前端就给你个弹窗,该手机号已注册,可以通过快捷方式登陆(页面没有跳转)。二、原生 js 发送ajax请求
//1.创建xhr对象,用来发送ajax请求和接收数据 let xhr = new XMLHttpRequest(); /* 2.创建请求对应的各种信息 参数一:请求的类型: get / post (后端大大说了算,get会把连接放在后面,post不会放在后面) 参数二:请求的地址 参数三:是否异步(99%为true,需要异步) */ xhr.open("get",“http://www.lanbai.fun”,true); /* 3.发送请求 需要处理一下数据格式 发送请求 */ xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");//固定写法,处理数据格式 xhr.send();
let sendData = { name : "lanbai", age : 18 }; let xhr = new XMLHttpRequest(); let url = "https://www.lanbai.fun"; url += "?"; for(let [key,value] of Object.entries(sendData)){ url += `${key}=${value}&`; } xhr.open("get",url,true); //固定写法,处理数据格式 xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); xhr.send(); //最后发送的数据为:https://www.lanbai.fun?name=lanbai&age=18&"
let sendData = { name : "lanbai", age : 18 }; let xhr = new XMLHttpRequest(); xhr.open("post",url,true); let url = "https://www.lanbai.fun"; xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); let d = ""; for(let [key,value] of Object.entries(sendData)){ d += `${key}=${value}&`; } xhr.send(d);
0:请求未初始化
1:请求已经建立(open)
2:请求已经发送(send)
3:请求正在后端处理
4:请求已经处理完 成,并且响应结束(我们最关心的状态,数据给你前端了,你要继续执行了)//监听状态 xhr.onreadystatechange = function(){ if(this.readyState !== 4 && xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) return; //能够获取数据了 console.log(this.responseText);//后端返回的数据 }
三、jq的ajax(使用)
前端传数据给后端,后端传输给前端(前后端数据交互时)使用。
2.建立ajax
上面原生js发送ajax
原生的极其难用,get与post不一样,还要判断很多,大家都使用的jquery封装好的ajax(也可以进行封装).
ajax使用://引用jq <script src="https://cdn.bootcss.com/jquery/3.5.0/jquery.min.js"></script> //$为变量名,自己就不要用&命名了 //传一个对象格式,写键值对格式 $.ajax({ //请求类型 type : "GET", //请求的地址 url : "https://xxxxxxxx", //请求的数据 data : { keywords : "xxx" }, //返回的数据格式预处理 //dataType : "json", //成功的回调函数,第一个形参代表返回的数据 success : function(msg){}, error : function(err){} });
未完待续。。。 小编刚开始学习写博客,有错误欢迎各位大大指出哦 ^_^...
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算