XHR

 1 var url = "/data.php";
 2     var param = [
 3         'id=9898',
 4         'limit=20'
 5     ];
 6 
 7     var req = new XMLHttpRequest();
 8 
 9     req.onreadystatechange = function(){
10         if(req.readyState == 4){
11             var responseHeaders = req.getAllResponseHeaders();    // 获取响应头信息
12             var data = req.responseText;    // 获取数据
13             // 数据处理
14 
15         }
16     };
17 
18     req.open("GET", url + "?" + param.join("&"), true); // open 三个参数: 请求方式/ url/ 是否异步
19     req.setRequestHeader("X-Request-With", "XMLHttpRequest"); // 设置请求头信息
20     req.send(null);    // 发送一个请求 send() 方法接受一个参数:即作为请求主体发送的数据
21 
22 
23     // 动态脚本注入
24     var scriptElement = document.createElement("script");
25     scriptElement.src = "http://g.pptv.com/javascript/user.js";
26     document.getElementsByTagName("head")[0].appendChild("scriptElement");
27     function jsoncallback(jsonString){
28         var data = eval('(' + jsonString + ')');
29         // 处理数据
30     }
31 
32     // 本地数据存储
33     var localCache = {};
34     function xhrRequest(url, callback){
35 
36         // 检查此 URL 的本地缓存
37         if(localCache[url]){
38             callback.success(localCache[url]);
39             return;
40         }
41 
42         // 此 url 对应的缓存没找到,则发送请求
43         var req = new XMLHttpRequest();
44         req.onerror = function(){
45             callback.error();
46         };
47 
48         req.onreadystatechange = function(){
49             if(req.readyState == 4){
50                 if(req.responseText === "" || req.status == "404"){
51                     callback.error();
52                     return;
53                 }
54 
55                 // 存储响应文本到本地缓存
56                 localCache[url] = req.responseText;
57                 callback.success(req.responseText);
58             }
59         };
60 
61         req.open("GET", url, true);
62         req.send(null);
63     }
疯癫不成狂,有酒勿可尝;世间良辰美,终成水墨白。
原文地址:https://www.cnblogs.com/chuyu/p/3365195.html