初识Ajax技术
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了初识Ajax技术,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含7710字,纯文字阅读大概需要12分钟。
内容图文
属性名称 |
说明
|
readyState
|
返回请求的当前状态
常用值:
0——未初始化
1——开始发送请求
2——请求发送完成
3——开始读取相应
4——读取响应结束
|
status
|
HTTP相应状态码:
200——相应正常
400——错误请求,如语法错误
403——没有访问权限
404——资源不存在
500——服务器内部错误
|
responseText
|
以文本形式获取相应值
|
responseXML
|
以XML形式获取相应值,并且解析成DOM对象返回
|
statusText |
返回当前请求的相应行状态
|
onreadystatechange |
设置回调函数
|
方法
|
说明
|
open(String method,String url,boolean async,String user,String password)
|
用于创建一个新的HTTP请求 参数method:设置HTTP请求方法,如POST、GET等,不区分大小写 参数url:请求的url地址(如果是get请求,参数在这里拼接) 参数async:可选,指定此请求是否为异步方法,默认为true 参数user:可选,如果服务器需要验证,此处指定用户名,否则弹出验证窗口 参数password:可选,验证中的密码 |
send(String data)
|
发送请求到服务器端
参数data:字符串类型,通过此请求发送的数据。POST方式需要指定,GET方式则不指定
|
abort()
|
取消当前请求
|
setRequestHeader(String header,String value)
|
单独设置请求的某个HTTP头信息 参数header:要指定的HTTP头名称 参数value:要指定的HTTP头名称所对应的值 常用的:setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=utf-8") |
getResponseHeader(String header)
|
从响应中获取指定的HTTP头信息
参数header:要获取指定的HTTP头
|
getAllResponseHeaders()
|
获取相应的所有的HTTP头信息 |
1 request.setCharacterEncoding("utf-8"); 2 response.setHeader("content-Type", "text/html;charset=utf-8"); 3// 读取参数 4 String mail = request.getParameter("mail"); 5 System.out.println("debug:mail:" + mail); 6 String result = "false"; 7if (mail.equalsIgnoreCase("qq")) { 8 result = "true"; 9} 10// 输出结果11 PrintWriter out = response.getWriter(); 12out.print(result); 13 out.flush();
1 /* * 2 * 创建xmlHttpRequest对象 3 * 4 * 兼容版本 5 * 6 * 开发时间:2016-5-18 上午10:00:49 7 * @author MrFalse 8 */ 9 function createXMLHttpRequest(){ 10 // 定义变量 11 var request=null; 12if(window.XMLHttpRequest){ 13 request=new XMLHttpRequest(); 14 }else{ 15// 兼容早期IE5、IE6浏览器16 request=new ActiveXObject("Microsoft.XMLHTTP"); 17 } 18return request; 19} 20/** 21 * 验证邮箱 22 * 23 * 24 * 开发时间:2016-5-18 上午10:05:07 25 * @author MrFalse 26 * @param oInput 27*/28function checkUserName(oInput){ 29// 读取输入框的的值30var strUserName=oInput.value; 31if(strUserName==null||strUserName==""){ 32 userNameMessage.innerHTML="邮箱不能为空"; 33return; 34 } 35// 创建XMLHttpRequest对象36var xmlHttpRequest=createXMLHttpRequest(); 37// 设置回调函数38 xmlHttpRequest.onreadystatechange=function(){ 39if(xmlHttpRequest.readyState==4&&xmlHttpRequest.status==200){ 40var strReturnString=xmlHttpRequest.responseText; 41if(strReturnString.indexOf("true")>=0){ 42 userNameMessage.innerHTML="用户名已经被占用"; 43 userNameMessage.className="red"; 44 }else{ 45 userNameMessage.innerHTML="用户名可以使用"; 46 userNameMessage.className="blue"; 47 } 48 } 49 } 50var url="RegisterServlet"; 51 xmlHttpRequest.open("post",url,true); 52// 设置头信息53 xmlHttpRequest.setRequestHeader("Content-Type", 54 "application/x-www-form-urlencoded;charset=utf-8"); 55// 参数数据,使用key=value&key=value……的方式56var urlParam="mail="+strUserName; 57//发送请求58 xmlHttpRequest.send(urlParam); 59 }
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2<html> 3<head> 4<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 5<title>注册页面</title> 6<script type="text/javascript" src="register.js"></script> 7<style type="text/css"> 8 9.blue{10 color: blue;11 font-weight: normal;12}1314.red{15 color: red;16 font-weight: bold;17}18</style>19</head>20<body>21<form action="">22<p>注册邮箱:<input type="text" onblur="checkUserName(this);"/>*<span id="userNameMessage"></span></p>23</form>24</body>25</html>
$.ajax() 综合的请求,比较强大,功能较全,但是复杂$.get() get方式请求,但是带参数时转为post请求
$.post() post方式请求$.getJSON() 获取服务器返回的json数据$(selecter).load() 将服务器返回的数据加载到选择器选中的内容中
使用$.ajax()
1 <! DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" > 2 < html > 3 < head > 4 < meta http-equiv ="Content-Type" content ="text/html; charset=UTF-8" > 5 < title >ajax请求jquery</title> 6</head> 7<body> 8<form action=""> 9<p><input type="text" name="email" id="email" onblur="requestxx(this);"/>10<span id="prompt">*</span>11</p>12</form>13</body>14</script>15</html>
1 <!-- 导入jquery库 --> 2 <script type="text/javascript" src="js/jquery-1.8.3.js"></script> 3 <script type="text/javascript"> 4function requestxx(thisobj){ 5//对中文进行uri编码 6 email=encodeURI(thisobj.value); 7 $.ajax({ 8 url:"RegisterServlet", 9 type:"get", 10 data:"mail="+email, 11//执行成功的回调函数12 success:function(result,textStatus){ 13if(result.indexOf("true")>=0){ 14 $("#prompt").text("用户名已经被占用"); 15 }else{ 16 $("#prompt").text("用户名可以使用"); 17 } 18 }, 19//执行失败或错误的回调函数20 error:function(){ 21 alert("ajax执行失败"); 22 } 23 }); 24 } 25 </script>
使用$.get()
1 <script type="text/javascript" src="js/jquery-1.8.3.js"></script> 2 <script type="text/javascript"> 3function check(input){ 4 $.get("RegisterServlet","mail="+input.value,function(result){ 5if(result.indexOf("true")>=0){ 6 $("#prompt").text("用户名已经被占用"); 7 }else{ 8 $("#prompt").text("用户名可以使用"); 9 } 10 }); 11 } 12 </script>
使用$.post()
1 <script type="text/javascript"> 2function check(input){ 3 $.post("RegisterServlet","mail="+input.value,function(result){ 4if(result.indexOf("true")>=0){ 5 $("#prompt").text("用户名已经被占用"); 6 }else{ 7 $("#prompt").text("用户名可以使用"); 8 } 9 }); 10 } 11 </script>
使用$.getJSON()
1 request.setCharacterEncoding("utf-8"); 2//两种响应头都可以使用3 response.setHeader("Content-Type", "application/json;charset=utf-8"); 4//response.setHeader("content-Type", "text/html;charset=utf-8");5 PrintWriter out=response.getWriter(); 6//返回的json格式必须是严格的json格式,否则浏览器无法调用7 out.print("{\"name\":\"张三\"}"); 8 out.flush();
1 < button onclick ="clickTest()" >提交</button>
1 <script type="text/javascript"> 2function clickTest() { 3 $.getJSON("ResponseJSON",function(data) { 4 alert(data.name); 5 }) 6 } 7 </script>
使用$(selecter).load()
1 <script type="text/javascript"> 2function check(input){ 3 $("#prompt").load("RegisterServlet","mail="+input.value); 4 } 5 </script>
- 一定要注意JSON字符串的书写格式,如果传入的字符串不是JSON格式,如果传入的字符串不是JSON格式或者格式错误,将不能得到正确的值。
- 使用$.getJSON()方法时,默认从服务器接收到的数据就是JSON对象,不需要再使用$.parseJSON()方法去解析即可使用
$.parseJSON(str)的使用
1 <! DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" > 2 < html > 3 < head > 4 < meta http-equiv ="Content-Type" content ="text/html; charset=UTF-8" > 5 < title >jqueryParseJSON</title> 6<script type="text/javascript" src="js/jquery-1.8.3.js"></script> 7<script type="text/javascript"> 8function test() { 9//json的字符串10var jsonStr =‘{"name":"张三","age":20}‘; 11//解析成json对象12var jsonObj = $.parseJSON(jsonStr); 13 alert("name:"+ jsonObj.name +"age:"+ jsonObj.age); 14 } 15</script>16</head>17<body>18<button onclick="test()">测试</button>19</body>20</html>
原文:http://www.cnblogs.com/AIThink/p/5506707.html
内容总结
以上是互联网集市为您收集整理的初识Ajax技术全部内容,希望文章能够帮你解决初识Ajax技术所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。