$.ajax data怎么处理_AJAX
2024-05-10 05:31:27
我们在之前jsp中编写的前端页面,在没有学到AJAX时,会遇到这样的问题,我们返回响应的结果展示在页面总会替代掉当前页面,展示出新的内容,所有当我们想要保留一些页面上的信息,去展示响应的结果时就可以使用AJAX技术。
AJAX其实就是页面局部刷新技术,他普遍应用在地图展示,搜索框提示语等功能上,他的运行原理大致是这样的,
Ajax的工作原理相当于在用户和服务器之间加了—个中间层(AJAX引擎),使用户操作与服务器响应异步化。并不是所有的用户请求都提交给服务器。像—些数据验证和数据处理等都交给Ajax引擎自己来做,,只有确定需要从服务器读取新数据时再由Ajax引擎代为向服务器提交请求。
1.创建ajax具体流程
- 1创建ajax引擎对像 2.声明监听函数
- 3.创建并发送ajax请求
- 4.其他处理
一个例子:用来判断输入框中的用户名字是否已被占用
function checkUname(){//获取用户名信息var uname=document.getElementById("uname").value;//创建ajax引擎对象var ajax;if(window.XMLHttpRequest){ajax=new XMLHttpRequest();}else if(window.ActiveXObject){ajax=new ActiveXObject("Msxml2.XMLHTTP");}//声明监听函数ajax.onreadystatechange=function(){//判断ajax状态码if(ajax.readyState==4){//判断响应状态码if(ajax.status==200){//获取响应数据(普通字符串或者json格式的字符串)var data=ajax.responseText;//处理响应数据if(eval(data)){//获取Span对象var span=document.getElementById("unameSpan");//设置span颜色span.style.color="red";//将数据填充到span中span.innerHTML="用户名已被注册";}else{//获取Span对象var span=document.getElementById("unameSpan");//设置span颜色span.style.color="green";//将数据填充到span中span.innerHTML="用户名ok";} } } //创建并发送请求 //创建请求ajax.open("get","data?uname="+uname);//发送请求ajax.send(null);
}
这里的代码含义具体是这样的:
if(window.XMLHttpRequest){//火狐ajax=new XMLHttpRequest();
}else if(window.ActiveXObject){//ieajax=new ActiveXObject("Msxml2.XMLHTTP");
}
这是创建AJAX对象的代码,上面的是对于火狐浏览器而说的,下面的是ie浏览器的对象,因为浏览器的兼任问题,所以最好写出这两个方式。
ajax.onreadystatechange=function(){}
这是声明事件监听:监听ajax对象的属性readystate的值,因为一旦readystate的值发生改变就会触发声明的函数的执行。我们想要在ajax发送完请求后做出的处理,可以从状态码判断状态,具体的状态码是这样的:
ajax的状态码之readyState的值:
- 0:表示ajax引擎对象创建
- 1:表示请求创建但是未发送 ajax.open("get","my");
- 2:请求发送 ajax.send(null);
- 3:请求处理完毕,正在接收响应内容
- 4:响应内容接收完毕(重要状态)
ajax.status
这是表示服务器响应的状态码:大致与服务器返回的一致,例如常见的404,500等
ajax之响应状态码:ajax.status
- 200:表示一切正常
- 404:资源未找到
- 500:服务器内部错误
ajax.open("get","data?uname="+uname);
这时创建ajax的发送请求
创建ajax请求(设置异步或者同步)ajax.open(method,url,ansyc);
- 其中:method:表示请求方式
- get方式:请求数据以?隔开的形式拼接在url的后面。并且请求数据不能写在send方法中
- post方式:post方式需要单独的进行请求数据的设置。使用ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");设置请求数据为键值对数据。如果有请求数据则ajax.send("键值对数据&键值对数据..."),如果没有请求数据,则ajax.send(null)
- url:请求地址
- ansyc:设置异步或者同步请求,true表示异步,false,表示同步。默认是异步的。
- 异步:当前js函数继续执行,无须等待ajax请求的响应以及响应的处理。
- 同步:当前js函数会等待ajax请求以及响应,当ajax响应处理完毕后,继续执行函数的剩余代码。
ajax.send(null);
发送ajax请求
- //get方式
- ajax.send(null);
- //post方式
- ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
- ajax.send("uname=张三&pwd=123");
最新文章
- [开发笔记]-jQuery获取radio选中项的值
- 一线大厂BAT资深移动开发者倾情打造,教你从0构建App
- ATOM中MARKDOWN的使用小结
- calibrate_cameras算子说明
- arcgis engine 计算距离面积体积
- mysql按加号没反应_请各位大哥给小老弟解疑答惑一下 为什么点击加号没有反应?感谢...
- 迈向数据科学的第一步:在Python中支持向量回归
- intent几种传值数组、对象、集合(Array,Object,List)
- 一个程序猿必须掌握的HTML的常识
- 2.4 Python 模块的使用安装导入
- java获取次月1日,java处置年、月、周次以及起至日期大全 (转载)
- [iOS]在tableview中用动画效果改变cell的高度
- svn 冲突解决方法
- [转载] 3 idiots
- named-config with name ‘c3p0-config.xml‘ does not exist. Using default-config
- 小巧实用的KMS激活工具 AAct特别版
- 2019-01-19-build-xmr-stak-on-ubuntu
- 爱快路由器使用L2TP线路做出口
- 前端拓展:如何开发一个 Chrome 插件?
- 图片像素分析与功能实现