加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

AJAX(Asynchronous Javascript And Xml)

发布时间:2020-12-16 00:44:56 所属栏目:百科 来源:网络整理
导读:基本的AJAX 1, 创建出xmlHttpRequest对象 ,在IE5,6中为ActiveXObject,其它的均为XMLHttpRequest对象,所以需要进行判断 var xmlHttp; if(window.XMLHttpRequest){ xmlHttp = new XMLHttpRequest(); }else{ xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"
基本的AJAX
1, 创建出xmlHttpRequest对象,在IE5,6中为ActiveXObject,其它的均为XMLHttpRequest对象,所以需要进行判断
var xmlHttp;
if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}else{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
2, 打开请求
xmlHttp.open("GET/POST","请求路径",是否异步);
传递方式如果用GET,那么参数在请求路径后进行传递。后台获取为乱码。解决方法有2
第一种方式为将tomcat的编码设置为与页面相同的编码,通常为UTF-8
实施:找到tomcat的安装路径下的conf文件夹下的server.xml,找到Connector标签(配置端口号那个),
增加属性URIEncoding="UTF-8"即可
第二种方式为在传递参数时进行二次编码,在后台进行一次解码。
实施:前台:"logonAction.do?username="+encodeURI(encodeURI("张三"))
后台:URLDecoder.decode(request.getParameter("username"),"UTF-8");return String
如果用POST,那么参数在后面的send方法中进行传递。
GET比POST要快,但是没POST安全;
GET保存的数据有限,POST没有数据限制。


请求路径:这里的请求是做转发操作,并不是重定向,所以请求的路径必须是程序中的路径。
是否异步:基本上都会为true,为true时,会调用三次回调函数,为false时,只调用一次,所以根本就不需要回调函数了。
3, 设置回调函数
xmlHttp.onreadystatechange=函数名;
这里不需要双引号,如果异步为false,完全没必要设置回调函数,因为只会被调用一次。
4, 设置HTTP头
当传递方式为POST时,必须设置HTTP头,让数据可以像HTML中的POST一样。这样后台才能拿到POST的数据,否则拿不到。
设置代码: xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
5, 发送参数
xmlHttp.send(参数=参数值&参数=参数值);
如果是GET,这里参数被忽略,仅仅只有在传递方式为POST时,send中的参数才能被获取到。

6, 获取回应数据
后台代码:PrintWriter pw = response.getWriter();
pw.write("回应的内容");
pw.close();
前台代码:if(xmlHttp.readystate==4 && xmlHttp.status==200){进行页面展示}
xmlHttp.responseText; //在xmlHttp.readystate=3时,responseText被赋值为回应的内容。
这个数据在js中所有,那么就可以控制body中的数据。
如果是更新表格,那么就在后台输出一个表格进行更新。 如果是图片,那么就在后台输出一个图片进行更新。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读