欢迎你的到此一游,在查看的过程中有疑问可在主页添加博主咨询,也可在下方评论留言。

ajax.js封装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
//ajax 的get post封装
function ajaxF( method , url , json, callback  ){
    var xhr = new XMLHttpRequest() || new ActiveXObject("Microsoft.XMLHTTP");
     
    var str = "";
    for( var key in json ){
        str += "&" + key +"=" + json[key];
    }
    str = str.slice(1);
     
    if( method == "get" ){
        url = url + "?" + str;
        xhr.open( "get" , url , true );
        xhr.send();
    }else{
        xhr.open( "post" , url , true );
        //设置请求头
        xhr.setRequestHeader( "Content-Type","application/x-www-form-urlencoded" )
        //post的请求数据要放在send里面
        xhr.send( str )
    }
    xhr.onreadystatechange = function(){
        if( xhr.readyState == 4 && xhr.status == 200 ){
            //拿到服务器的结果后  要实现的功能是可变的
            callback( xhr.responseText );//函数调用 传递实参
        }
    }
}
// 找一个天气情况的接口做测试
//  ajaxF("get","http://wthrcdn.etouch.cn/weather_mini",{city:"北京"},function(res){
//      var ul = document.createElement("ul");
//      for( let i = 1 ; i <=5 ; i ++ ){
//          var li = document.createElement("li");
//          ul.appendChild(li);
//          li.style.width = "100px";
//          li.style.border = "1px solid red";
//          li.style.height = "200px";
//          li.style.float = "left";
//          li.style.display = "flex";
             
//      }
//      document.body.appendChild(ul);
//      ul.style.width = "510px";
//      ul.style.height = "200px";
//      let oLi = document.querySelectorAll("li");
//      let arr = JSON.parse(res).data.forecast
//         for( let i = 0 ; i < arr.length ; i++ ){
//              oLi[i].innerHTML = arr[i].date + "<br><br>" + arr[i].high + "<br><br>" + arr[i].low + "<br><br>" + arr[i].fengxiang
//         }
//   })
 
//例
// ajaxF("get","http://wthrcdn.etouch.cn/weather_mini",{city:"北京"},function(res){
//  console.log(res)
// })
 
 
// url :请求路径
// callback :  该参数是一个函数,回调函数
// data :  接口的参数
function ajaxGet(url,callback,data){
    var xhr = null;
    if( window.XMLHttpRequest ){
        xhr = new XMLHttpRequest();
    }else{
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if( data ){ //如果有参数   在路径的后面拼接参数
        url = url + "?" + data;
    }
//  if(arguments.length == 3){//表示传递的参数有三个 
//      url = url + "?" + data;
//  }
    xhr.open("GET",url,true);
    xhr.send();
    xhr.onreadystatechange = function(){
        if( xhr.readyState == 4 && xhr.status == 200 ){
                //拿到服务器的结果后  要实现的功能是可变的
                callback(xhr.responseText);//通过函数的调用将服务器处理的结果以参数形式传递给前端
        }
    }
     
}
 
 
function ajaxPost(url,callback,data){
    var ajax = null;
    if( window.XMLHttpRequest ){
        ajax = new XMLHttpRequest();
    }else{
        ajax = new ActiveXObject("Microsoft.XMLHTTP");
    }
     
    ajax.open("POST",url);
    ajax.send(data);//向服务器端发送数据 用户名
    //设置请求头:
    ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
     
    ajax.onreadystatechange = function(){
        if(ajax.readyState == 4 && ajax.status == 200){
            callback(ajax.responseText);
        }
    }  
     
}

  

posted @   廖客  阅读(380)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
历史上的今天:
2019-07-08 React和Redux的连接react-redux
点击右上角即可分享
微信分享提示