Javascript:ajax

1.一个简单的ajax实例

function ajaxFunction()
 {
 var xmlHttp;
if(window.XMLHttpRequest()){
   // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
 }else{
             xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
 }
  //回调函数    
    xmlHttp.onreadystatechange=function()
      {
      if(xmlHttp.readyState==4&&xmlHttp.status==200){
   document.myForm.time.value=xmlHttp.responseText;
}
  //规定请求的类型,url,和是否异步,type,url,async
    xmlHttp.open("GET","time.asp",true);
  //将请求发送到服务器,也为Post请求传送数据
    xmlHttp.send(null);
 }

/*
****readyState状态 描述**** 
0 请求未初始化(在调用 open() 之前) 
1 请求已提出(调用 send() 之前) 
2 请求已发送(这里通常可以从响应得到内容头部) 
3 请求处理中(响应中通常有部分数据可用,但是服务器还没有完成响应) 
4 请求已完成(可以访问服务器响应并使用它) 
****status 状态码****
 200:服务器响应正常。
 304:该资源在上次请求之后没有任何修改(这通常用于浏览器的缓存机制,使用GET请求时尤其需要注意)。
 400:无法找到请求的资源。
 401:访问资源的权限不够。
 403:没有权限访问资源。
 404:需要访问的资源不存在。
 405:需要访问的资源被禁止。
 407:访问的资源需要代理身份验证。
 414:请求的URL太长。
 500:服务器内部错误。
*/

2.GET 还是 POST?
与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。
然而,在以下情况中,请使用 POST 请求:
–无法使用缓存文件(更新服务器上的文件或数据库)
–向服务器发送大量数据(POST 没有数据量限制)
–发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠

3.GET请求防止缓存

xmlhttp.open("GET","/try/ajax/demo_get.php?t=" + Math.random(),true); 
xmlhttp.send();

4.POST请求

//如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。然后在 send() 方法中规定您希望发送的数据:
xmlhttp.open("POST","/try/ajax/demo_post2.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Henry&lname=Ford");

5.服务器响应
如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。
responseText 获得字符串形式的响应数据。
responseXML 获得 XML 形式的响应数据。

6.响应XML

xmlDoc=xmlhttp.responseXML;
txt="";
x=xmlDoc.getElementsByTagName("ARTIST");
for (i=0;i<x.length;i++)
{
    txt=txt + x[i].childNodes[0].nodeValue + "<br>";
}
document.getElementById("myDiv").innerHTML=txt;

xml文件

<!--  Edited by XMLSpy®  -->
<CATALOG>
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
</CARALOG>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值