JavaScript实现Ajax请求简单示例
来源:互联网 发布:em算法硬币 编辑:程序博客网 时间:2024/05/23 13:05
原文链接:https://my.oschina.net/u/658145/blog/167651
很久之前用过JavaScript写Ajax请求,后来一直用JQuery,今天突然想起来,于是参考网上的资料重新写了一遍,在此整理并记录下来,以备以后查看使用,也希望对初学者有所帮助!示例代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html> <head> <title> Ajax </title> <script type="text/javascript"> var xmlHttpReq = null;//XMLHttpRequest对象 // 去除字符串两边空格 String.prototype.trim = function () { return this.replace(/(^\s*)|(\s*$)/g, ""); } // 创建XMLHttpRequest对象 function createXMLHttpRequest() { if (window.XMLHttpRequest) {// IE 7.0及以上版本和非IE的浏览器 xmlHttpReq = new XMLHttpRequest(); } else {// IE 6.0及以下版本 try { xmlHttpReq = new ActiveXObject("MSXML2.XMLHTTP"); }catch (e) { try { xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP"); }catch (e) {} } } if (!xmlHttpReq) { alert("当前浏览器不支持!"); return null; } return xmlHttpReq; } //Ajax请求 function tiplist(txt,requestMethod){ var txtValue = txt.value.trim(); if(txtValue!=""){ var parameter = "code="+txtValue+"&str=中文"; var requestURL = "http://127.0.0.1:8080/MyProj/ShowServlet"; xmlHttpReq = createXMLHttpRequest(); if("GET" == requestMethod.trim().toUpperCase()){ xmlHttpReq.open("GET",encodeURI(EncodeURI(requestURL+"?"+parameter)),true); xmlHttpReq.setRequestHeader("If-Modified-Since","0"); xmlHttpReq.send("null"); }else if("POST" == requestMethod.trim().toUpperCase()){ xmlHttpReq.open("POST",requestURL,true); xmlHttpReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded;"); xmlHttpReq.send(encodeURI(encodeURI(parameter))); }else{ alert("错误的请求方式!"); return; } xmlHttpReq.onreadystatechange = function(){ if(xmlHttpReq.readyState == 4){ switch(xmlHttpReq.status){ case 200: //var datas = xmlHttpReq.responseXML.getElementsByTagName("data"); //alert(datas.length); document.getElementById("downlist").innerHTML = xmlHttpReq.responseText; break; case 400: alert("错误的请求!\nError Code:400!"); break; case 403: alert("拒绝请求!\nError Code:403!"); break; case 404: alert("请求地址不存在!\nError Code:404!"); break; case 500: alert("内部错误!\nError Code:500!"); break; case 503: alert("服务不可用!\nError Code:503!"); break; default: alert("请求返回异常!\nError Code:"+xmlHttpReq.status); break; } } } } } </script> </head> <body> <input type="text" id="txt" name="txt" value="" onkeyup="tiplist(this,'post');" /><br/><br/> <div id="downlist" style="width:200px;height:300px;background:gray;"></div> </body></html>PS:在写的过程中遇到xmlHttpRequest对象的status返回状态码为0,网上大部分说法是0表示为请求目标地址直接返回成功状态(即此时0也表示成功状态,但不等同于返回200的成功状态,200才是真正正常的成功状态。出现此种返回0的状态,很可能是Ajax跨域导致,比如直接运行静态Html页面,请求已发布的工程,由于该静态页面未在此发布的工程中,此时就属于跨域,返回状态码0,将此静态页面拷贝到发布的工程目录并以http方式访问,返回200的成功状态码)。
0 0
- JavaScript实现Ajax请求简单示例
- JavaScript实现Ajax请求简单示例
- Ajax简单请求示例
- Javascript实现Ajax请求
- javaScript简单实现ajax
- 原生JavaScript实现Ajax请求
- 使用jquery实现ajax请求示例
- JavaScript 原生ajax的简单示例
- javascript 实现 ajax 示例代码----get方式
- 原生javascript实现ajax 发送post请求
- javascript原生代码实现ajax请求
- 原生JavaScript实现ajax异步请求代码
- 原生javascript实现ajax异步请求
- ajax请求示例
- ajax异步请求示例
- java ajax请求示例
- 简单的实现Ajax跨域请求
- Ajax请求Session过期简单实现
- redis 键(key)
- 网易视频云受邀参加中国视频云峰会,有哪些看点?
- linux环境变量不能生效问题
- 亿级Web系统搭建——单机到分布式集群
- 如何导出caffemodel参数
- JavaScript实现Ajax请求简单示例
- CodeForces733D Kostya the Sculptor 贪心+二分
- HihoCode 1284 : 机会渺茫【约数个数】
- void (*signal(int sig, void (*func) (int))) (int)理解
- [bzoj 1009] [HNOI2008]GT考试:DP,单串AC自动机,矩阵快速幂
- java的反射机制
- python Json
- 身份证号码验证
- Ubuntu 14.04 编译安装 Tengine + PHP5.6