1.创建XMLHttpRequest对象

variable = new XMLHttpRequest()

variable = new ActiveXObject('Microsoft.XMLHTTP') //IE5, IE6

2.应对所有现代浏览器, 需要检查浏览器是否支持XMLHttpRequest对象. 如果支持则创建相应对象.

var xmlhttp;

if(window.XMLHttpRequest){

  //code for IE7+, firefox, chorme, opera, safari.

  xmlhttp = new XMLHttpRequest();

}else{

  //code for IE5, IE6

  xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');

}

 

3.向服务器发送请求, 是否异步处理.

1)xmlhttp.open('GET', url, true);

   xmlhtto.send();

 

2)xmlhttp.open('get', "demo_get.php?t="+math.random(), true) //追加唯一ID:t 清除可能的缓存.

   xmlhttp.send();

 

3)POST方式提交表单. //需要使用setRequesetHeader() 来设置http头部, 然后使用send()中规定你希望发送的数据.

   xmlhttp.open('post',"ajax_text.php", true);

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

   xmlhttp.send("fname=bill&name=Gates");

 

4)获取来自服务器的响应数据, 如果返回的数据不是xml(responseXML), 则采用responseText.

var xmlhttp;

function loadXMLDoc(url, cfunc){

  if(window.XMLHttpRequest){

    xmlhttp = new XMLHttpRequest();

  }else{

    xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');

  }

  xmlhttp.onreadystatechange = cfunc;

  xmlhttp.open('GET', url, true);

  xmlhttp.send();

}

function myfunction(){

  loadXMLDoc("/ajax/demo.php", function() //callback 函数

  {

    if(xmlhttp.readyState == 4 && xmlhttp.statue == 200){

      document.getElementById('mydiv').innerHTML = xmlhttp.responseText();

    }

  }

  )

}

// onreadyStatechange事件被触发5次(0-4), 对应每个readyState的值.

  

posted on 2014-04-24 07:18  Kimer  阅读(890)  评论(0编辑  收藏  举报