JS AJAX原理

创建对象 > 请求 >  响应
 

GET 还是 POST?
          与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。
 然而,在以下情况中,请使用 POST 请求:
无法使用缓存文件(更新服务器上的文件或数据库)
向服务器发送大量数据(POST 没有数据量限制)
发送包含未知字符的用户输入
 1 var AjaxFlux = function AjaxFlux(url)
 2 {
 3      var xmlhttp;
 4      var requesttxt;
 5 
 6      // 为了应对所有的现代浏览器,包括 IE5 和 IE6,请检查浏览器是否支持 XMLHttpRequest 对象。
 7      //如果支持,则创建 XMLHttpRequest 对象。如果不支持,则创建 ActiveXObject :
 8      if (window.XMLHttpRequest)
 9      {
10           // 所有现代浏览器(IE7+、Firefox、Chrome、Safari 以及 Opera)均内建 XMLHttpRequest 对象。 
11           xmlhttp=new XMLHttpRequest();
12      }
13      else
14      {
15           //老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象:
16           xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
17      }
18 
19 
20      this.postResult = function(d){
21          
22           if(!xmlhttp){
23                return;
24           }
25          
26           //准备向服务器的GetDate.ashx发出Post请求。
27           xmlhttp.open("POST" , url , false);
28           xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
29           xmlhttp.send(d); 
30          
31          //响应
32          //存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。 readyState
33      0: 请求未初始化
34                1: 服务器连接已建立
35                2: 请求已接收
36                3: 请求处理中
37                4: 请求已完成,且响应已就绪
38          //status 
39                200: "OK"
40                404: 未找到页面
41           xmlhttp.onreadystatechange=function(){
42                if(xmlhttp.readyState==4){
43                     if(xmlhttp.status==200){
44                          requesttxt=xmlhttp.responseText;
45                         
46                     }
47                }
48           }
49      }
50      return requesttxt;
51 
52 }
原文地址:https://www.cnblogs.com/LYshuqian/p/2919120.html