JavaScript11

总结下步骤

1.首先创建HttpRequest对象

我们需要判断浏览器,不同的浏览器创建这个HttpRequest对象的时候,是使用的对象不同

window.XMLHttpRequest---IE7+,Firefox,Chrome,Opera,Safari浏览器---XMLHttpRequest---IE5,IE6浏览器---ActiveObject("Microsoft XMLHTTP");

2.请求发送以后的处理动作

XMLHttpRequest对象属性

属性

描述

onreadystatechange

定义当 readyState 属性发生变化时被调用的函数

readyState

保存 XMLHttpRequest 的状态。

0:请求未初始化

1:服务器连接已建立

2:请求已收到

3:正在处理请求

4:请求已完成且响应已就绪

responseText

以字符串返回响应数据

responseXML

以 XML 数据返回响应数据

status

返回请求的状态号

200: "OK"

403: "Forbidden"

404: "Not Found"

如需完整列表请访问 Http 消息参考手册

statusText

返回状态文本(比如 "OK" 或 "Not Found")

3.向服务器发送请求

3.1 open(method,url,async)

       method:服务器(文件)位置

       async:true(异步)或false(同步)

3.2send()/send(string)

 

send()

向服务器发送请求(用于 GET)

send(string)

向服务器发送请求(用于 POST)

xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

xhttp.send("fname=Bill&lname=Gates");

 

以get方式发送javascript请求

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script>
			//以Get方式发送javascript的ajax请求
			function getAjaxRequest(url){
				//创建HttpRequest对象
				var xmlhttprequest;
				if(window.XMLHttpRequest){
					xmlhttprequest=new XMLHttpRequest();
				}else{
					xmlhttprequest=new ActiveXObject("Microsoft.XMLHTTP");
				}
				//2.发送请求
				var basepath="http://127.0.0.1:8080/ajaxdmeo";
				url=basepath+url;
				xmlhttprequest.open("GET",url,true);
				xmlhttprequest.send();
				//3.请求发出一行的处理动作
				xmlhttprequest.onreadystatechange=function(){
					//请求发送成功
					if(xmlhttprequest.readyState==4 && xmlhttprequest.status==200){
						//以字符串返回响应数据
						var info=xmlhttprequest.responseText;
						//由于我们得到的json数据是一个字符串,
						//我们现在需要将这个字符串转换成json对象
						var  jsonobj=eval("("+info+")");
						//定义行变量
						var rows="";
						if(jsonobj==null){
							rows="<tr><td colspan='4'>没记录</td></tr>";
						}else{
							if(jsonobj.length>0){
								for(var i=0;i<jsonobj.length;i++){
									rows=rows+"<tr><td>"+jsonobj[i].stuid+
									"</td><td>"+jsonobj[i].stuname+
									"</td><td>"+jsonobj[i].stuage+
									"</td><td>"+jsonobj[i].stuaddress+
									"</td><tr>";
								}
							}else{
								rows="<tr><td>"+jsonobj.stuid+
								"</td><td>"+jsonobj.stuname+
								"</td><td>"+jsonobj.stuage+
								"</td><td>"+jsonobj.stuaddress+
								"</td></tr>";
							}
						}
						document.getElementById("main").innerHTML=rows;
						
					}
				}
			}
			window.onload=function(){
				//无条件查询
				getAjaxRequest("/studentall");
				//为按钮添加点击事件
				document.getElementById("querybut").onlick=function(){
					//得到文本框输入的数据值
					var stuidval=document.getElementById("inputid").value;
					var stunameval=document.getElementById("inputname").value;
					if(stuidval!=""&&stunmaeval!=""){
					getAjaxRequest("/studentstuidstuname?stuid="+stuidval+"&stuname="+stunameval);	
					}
					if(stuidval==""&&stunameval==""){getAjaxRequest("/studentall");
				    }
					if(stuidval!=""&&stunameval=""){
						getAjaxRequest("/studentstuid?stuid="+stuidval);	
					}
					if(stuidval!=""&&stunameval!=""){
						getAjaxRequest("/studentstuname?stuname="+stunameval);
					}	
			}
		</script>
	</head>
	<body>
		<center>
			stuid:<input id="inputid" type="text" />
			stuname:<input id="inputname" type="text"/>
			<input id="querybut" type="button" value="查询" /><br>
			<hr>
			<table  id="main" border="1px"  width="500px"></table>
		</center>
	</body>
</html>

 以post方式发送javascript的ajax请求

1.

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script>
			//以post方式发送javascript的ajax请求
			function postAjaxRequest2(url,canshu){
				//1.创建HttpRequest对象
				var xmlhttprequest;
				if(window.XMLHttpRequest){
					xmlhttprequest=new XMLHttpRequest();
				}else{
					xmlhttprequest=new ActiveXObject("Microsoft.XMLHttp");
				}	
			//2.发送请求
			var basepath="http:127.0.0.1:8080/ajaxdmeo";
			url=basepath+url
			xmlhttprequest.open("post",url,true);
			xmlhttprequest.setRequestHeader("Conten-type","application/x-www-form-urlencoded");
			if(canshu==null){
				xmlhttprequest.send()
			}else{
				xmlhttprequest.send(canshu);
			}
			//3.请求发出以后的处理动作
			xmlhttprequest.oneradystatechange=function(){
				//请求发送成功
				if(xmlhttprequest.readyState==4 && xmlhttprequest.status==200){
					//以字符串返回响应数据
					var info=xmlhttprequest.responseText;
					//由于我们得到的json数据是一个字符串
					//我们现在需要将这个字符串转换成json对象
					var jsonobj=eval("(+info)");
					//定义行变量
					var rows="";
					if(jsonobj==null){
						rows="<tr><td colspan='4'>无记录</td></tr>";
					}else{
						if(jsonobj.length>0){
							for(var i=0;i<jsonobj.length;i++){
								rows=rows+"<tr><td>"+jsonobj[i].stuid+
								"</td><td>"+jsonobj[i].stuname+
								"</td><td>"+jsonobj[i].stuage+
								"</td><td>"+jsonobj[i].stuaddress+
								"</td></tr>";
							}
						}else{
							rows="<tr><td>"+jsonobj.stuid+
							"</td><td>"+jsonobj.stuname+
							"</td><td>"+jsonobj.stuage+
							"</td><td>"+jsonobj.stuaddress+
							"</td></tr>";
						}
					}
					document.getElementById("main").innerHTML=rows;
				}
			}
		}
		window.onload=function(){
			//保存post请求方法的请求参数的变量
			var canshu=null;
		    //无条件全部查询
			postAjaxRequest2("/studentall",canshu);
			//为按钮添加点击事件
			document.getElementById("querybut").onclick=function(){
				//得到文本框输入的数据值
				var stuidval=document.getElementById("inputid").value;
				var stunameval=document.getElementById("inputname").value;
				if(stuidval!=""&&stuname!=""){
					canshu="shuid="+stuidval+"&stuname"+stunameval;
					postAjaxRequest2("/studentstuidstuname",canshu);
				}
				if(stuidval==""&&stunameval==""){
					postAjaxRequest2("/studentall",canshu);
				}
			    if(stuidval!=""&&stunameval==""){
					canshu="stuid="+stuidval;
					alert(canshu);
					postAjaxRequest2("/studentstuname",canshu);
				}
			}
		}
		</script>
	</head>
	<body>
		<center>
			stuid:<input id="inputid" type="text"/>
			stuname:<input id="inputname" type="text" />
			<input id="querybut" type="button" value="查询"><br>
			<hr>
			<table id="main" border="1px" width="500px"></table>
		</center>
	</body>
</html>

2.

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script>
			//以post方式发送javascript的ajax请求
			function postAjaxrequest1(url){
				//1.创建HttpRequest对象
				var xmlhttprequest;
				if(window.XMLHttpRequest){
					xmlhttprequest=new XMLHttpRequest();
				}else{
					xmlhttprequest=new ActiveXObject("Microsoft.XMLHTTP");
				}
				//2.发送请求
				var basepath="http://127.0.0.1:8080/ajaxdmeo";
				url=basepath+url
				xmlhttprequest.open("post",url,true);
				xmlhttprequest.send();
				//3.请求发出以后的处理动作
				xmlhttprequest.onreadystatechange=function(){
					//请求发送并响应成功
					if(xmlhttprequest.readyState==4 && xmlhttprequest.status==200){
						//以字符串返回响应数据
						var info=xmlhttprequest.responseText;
						//由于我们得到的json数据是一个字符串
						//我们现在需要将这个字符串转换成json对象
						var jsonobj=eval("("+info+")");
						//定义变量
						var rows="";
						if(jsonobj==null){
							rows="<tr><td colspan='4'>无相关记录</td></tr>";
						}else{
							if(jsonobj.length>0){
								for(var i=0;i<jsonobj.length;i++){
									rows=rows+"<tr><td>"+jsonobj[i].stuid+
									"</td><td>"+jsonobj[i].stuname+
									"</td><td>"+jsonobj[i].stuage+
									"</td><td>"+jsonobj[i].stuaddress+
									"</td></tr>";
																	}
							}else{
								rows="<tr><td>"+jsonobj[i].stuid+
								"</td><td>"+jsonobj[i].stuname+
								"</td><td>"+jsonobj[i].stuage+
								"</td><td>"+jsonobj[i].stuaddress+
								"</td></tr>";
							}
						}
						document.getElementById("main").innerHTML=rows;
					}
				}
			}
		 window.onload=function(){
			 //无条件全部查询
			 postAjaxrequest1("/studentall");
			 //为按钮添加点击事件
			 document.getElementById("querybut").onclick=function(){
				 //得到文本框输入的数据值
				 var stuidval=document.getElementById("inputid").value;
				 var stuidval=document.getElementById("inputname").value;
				 if(stuidval!=""&&stunameval==""){
					 postAjaxrequest1("/studentstuidstuname?stuid="+stuidval+"&stuname="+stunameval);
				 }
				 if(stuidval==""&&stuname==""){
					 postAjaxrequest1("/studentall");
				 }
				 if(stuidval!=""&&stubameval==""){
					 postAjaxrequest1("studentstuid?stuid="+stuidval);
				 }
				 if(stuidval==""&&stunameval!=""){
					 postAjaxrequest1("/studentstuname?stuname="+stunameval);
				 }
			 }
		 }
		</script>
	</head>
	<body>
		<center>
			stuid:<input id="inputid" type="text"/>
			stuname:<input id="inputname" type="text"/>
			<input id="querbut" type="button" value="查找"/><br>
			<hr>
			<table id="main" border="1px" width="500px" ></table>
		</center>
	</body>
</html>

Get和post的区别

GET

POST

请求数据被放在请求的URL中

请求数据被放在请求的Http协议

请求数据用户可见

请求数据用户不可见

不安全

安全

传输的数据量小【255个字符】

传输的数据量没有限制

不能上传文件

能上传文件

限制表单是数据编码的值为ASCII码

支持ISO10646字符集

执行效率高

执行效率低

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值