总结下步骤
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字符集 |
执行效率高 | 执行效率低 |