AJAX(asynchronous javascript and xml)技术本质是浏览器内置的XMLHttpRequest对象,主要用于异步地向服务器发
送请求,接收服务器返回的数据并局部更新页面,如表单的验证提示等。整个过程页面无刷新,不打断用户的操作,
增强了用户的体验。
一、AJAX对象的获取
AJAX对象的获取要区分浏览器。浏览器为IE类型的获取的方式:new ActiveXObejct('Microsoft.XMLHttp');
浏览器为非IE类型的获取的方式:new XMLHttpRequest()。
二、AJAX对象常用的属性
1、onreadystatechange:绑订一个事件处理函数,该函数用来处理readystatechange事件(当readyState的值发生了改变,比如,从0变成1,就会产生该事件)。
2、readyState:有5个值,分别是0,1,2,3,4,表示ajax对象与服务器进行通信的一种状态。
比如,4表示ajax对象已经获得了服务器返回的所有的数据。
3、responseText:获得服务器返回的文本。
4、responseXML:获得服务器返回的xml文档。
5、status:获得服务器返回的状态码。
三、应用案例(表单验证)
1、获取AJAX对象的方法getXhr()
2、发送get请求的验证代码
3、发送post请求的代码
4、服务器端Servlet代码
5、总结
AJAX对象给服务器发送不同的请求方式(get/post)时,需解决编码问题以避免乱码,出现乱码的原因和解决方式如下。
1)get请求发生乱码的原因
IE浏览器提供的ajax对象在发送请求时使用"gbk"对含有中文的请求参数进行编码。非IE浏览器使用"utf-8"进行编码。服
务器端默认情况下,会使用"iso-8859-1"进行解码。
2)get请求解决乱码的方法
step1,让服务器使用指定的字符集解码。比如,可以修改tomcat的server.xml文件(conf/server.xml),在connector项中
添加URIEncoding="utf-8"即可
step2,使用encodeURI函数(js内置的函数,会使用"utf-8"进行编码)对请求参数进行编码。encodeURI(String params)。
step2,使用encodeURI函数(js内置的函数,会使用"utf-8"进行编码)对请求参数进行编码。encodeURI(String params)。
3)post请求发生乱码的原因
所有浏览器提供的ajax对象都会使用"utf-8"对中文参数进行编码。服务器端默认情况下,会使用"iso-8859-1"进行解码。
4)
post请求
解决乱码的方法
在处理请求的Servlet程序中添加request.setCharacterEncoding("utf-8")即可。