ajax创建xml对象以及get post请求

一.XMLHttpRequest 是 AJAX 的基础

1.创建 XMLHttpRequest 对象

  所有现代浏览器(IE7+、Firefox、Chrome、Safari 以及 Opera)均内建 XMLHttpRequest 对象。

    variable=new XMLHttpRequest();

  老版本

   variable=new ActiveXObject("Microsoft.XMLHTTP");

2.应用

  为了应对所有的现代浏览器,包括 IE5 和 IE6,请检查浏览器是否支持 XMLHttpRequest 对象。如果支持,则创建 XMLHttpRequest 对象。如果不支持,则创建 ActiveXObject :

var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }



二.XMLHttpRequest 对象用于和服务器交换数据

    1.一个简单的 GET 请求:

  xmlhttp.open("GET","demo_get.asp",true);
  xmlhttp.send();

      在上面的例子中,您可能得到的是缓存的结果。

      为了避免这种情况,请向 URL 添加一个唯一的 ID:

  xmlhttp.open("GET","demo_get.asp?t=" + Math.random(),true);
  xmlhttp.send()
  原因:

例如你的文件URL是:flie/xxx.txt
第一次Ajax请求这个文件,浏览器可能会将这个文件缓存在本地,下次再打开这个文件浏览器就可以直接打开本地文件,无需重新通过网络再次获取。
但是,浏览器有可能会好心办了坏事,因为你修改了服务器的flie/xxx.txt文件,但是浏览器不知道,它还是会打开本地缓存的文件,这就会造成一些BUG。
为了防止出现这种问题,在URL上加一个参数“t=随机数”,浏览数会认为两次打开的是不同的东西,第二次Ajax就不会使用第一次Ajax的缓存。

至于“这为何能正常运行呢”?
在URL上加上参数,同样还是打开这个文件,当然可以正常运行。
flie/xxx.txt?t=0.1234567890123456,这个URL同样还是打开文件flie/xxx.txt。

 

2.一个简单 POST 请求:

xmlhttp.open("POST","demo_post.asp",true);
xmlhttp.send();

如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。然后在 send() 方法中规定您希望发送的数据:

xmlhttp.open("POST","ajax_test.asp",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Bill&lname=Gates");

posted on 2016-03-22 22:24  小旎子  阅读(240)  评论(0编辑  收藏  举报

导航