回调函数封装原生AJAX

本文介绍了一个仅需三个参数的工具函数,用于配置AJAX请求(URL、请求方式和回调),并通过实例演示了如何配合服务器API和前端页面进行数据交互。同时提到了jQuery库的AJAX用法,尽管jQuery不再主流,但其API提供了便捷的API支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们封装的工具函数只需要配置三个形参就可以完全实现功能,第一个参数url请求网址,第二个参数以post还是get方式请求,第三个是我们的业务函数(回调函数),业务函数运行完将数据传入回调函数运行。

封装代码:

function tool(url,method,callback){
    var xhr=new XMLHttpRequest()||new ActiveXObject("Microsoft.XMLHTTP")
    xhr.open(method,url)
    xhr.send()

    //监听
    xhr.onreadystatechange=function(){
        if(this.readyState==4&&this.status==200){
            callback(xhr.responseText)
        }
    }
}

写一个项目测试一下:

这次我们手巧创建一下服务器回顾一下基础,

创建服务器并设置AJAX请求得接口数据:(这里记得下载第三方模块mime)

var http=require("http")
var fs=require("fs")
var mime=require("mime")

var app=http.createServer((req,res)=>{
    // console.log(__dirname+req.url);
    fs.readFile(__dirname+req.url,(err,data)=>{
        
        if(!err){
            
            res.setHeader("content-Type",mime.getType(req.url))
            res.end(data)
        }else if(req.url=="/ajax"){
            res.setHeader("content-Type",mime.getType(req.url))
            res.end('{"name":"zs","age":45}')
        }else{
            res.end("404")
        }
    })
   
})
app.listen(8081)

 创建前端页面,导入我们提前封装好的AJAX。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <button onclick="fn()">点击获取</button>

    <script type="module">
        import tool from "./fezhuangAJAX.js"
        var btn=document.querySelector("button")
          btn.onclick=function(){
            tool("GET","/ajax",function(str){
            var obj=JSON.parse(str)
            console.log(obj);
        })
        }
       
    </script>
    <!-- <script src="./fezhuangAJAX.js"></script> -->
   
</body>
</html>

运行一下index.html页面获取数据。

再这里提一下,jquery的函数库也为我们封装了原生的AJAX,我们直接在html文档中引入资源库即可直接使用,用法:$.get(url,callback),用我们封装的相似,但是他还有其他很多方法大家可以自行了解,因为现在jquery已经逐渐被弃用了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值