首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[方法]ajax.js封装

发布于 2024-06-01 18:15:54
0
137


//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 + "

" + arr[i].high + "

" + arr[i].low + "

" + 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); } } }
评论
一个月内的热帖推荐
道亮_(:з」∠)_
Lv.1管理员

404

帖子

30

小组

2177

积分

赞助商广告
站长交流