ajax的多种实现

这篇博客介绍了如何使用Node.js的Express框架创建服务器,并通过Ajax实现前后端数据交互。内容包括:1) Express的基本应用,如GET、POST和ALL路由;2) 原生Ajax请求的实现;3) jQuery中$.get方法的使用;4) Axios库进行HTTP请求的方法。展示了多种与服务器通信的方式。
摘要由CSDN通过智能技术生成

第一种用nodejs服务器

先安装nodejs

再使用express框架

1.初始化项目

npm init -y

2.安装express

npm i express

3.使用express创建服务端的规则。

	//1. 引入express
	const express = require('express');
	
	//2. 创建应用对象
	const app = express();
	
	//3. 创建路由规则
	// request 是对请求报文的封装
	// response 是对响应报文的封装
	app.get('/', (request, response) => {
	    //设置响应
	    response.send('HELLO EXPRESS 1');
	});
	app.post('/', (request, response) => {
	    //设置响应
	    response.send('HELLO EXPRESS 2');
	});
	app.all('/', (request, response) => {
	    //设置响应
	    response.send('HELLO EXPRESS 3');
	});

	//4. 监听端口启动服务
	app.listen(8000, () => {
	    console.log("服务已经启动, 8000 端口监听中....");
	});

4.

	 <!DOCTYPE html>
	<html lang="en">
	
	<head>
	    <meta charset="UTF-8">
	    <meta http-equiv="X-UA-Compatible" content="IE=edge">
	    <meta name="viewport" content="width=, initial-scale=1.0">
	    <title>AJAX GET 请求</title>
	    <script src="../js/jquery-3.0.0.min.js"></script>
	    <style>
	        #result {
	            width: 200px;
	            height: 100px;
	            border: solid 1px red;
	        }
	    </style>
	</head>
	
	<body>
	    <button>发送请求</button>
	    <div id="result"></div>
	</body>
	<script>
	    // 1.获取元素 给按钮添点击事件
	    $('button').on('click', function () {
	        // alert(1);
	        // 2.创建对象
	        const xhr = new XMLHttpRequest();
	        // 3.初始化 设置请求方式 和url
	        xhr.open('GET', 'http://127.0.0.1:8000/server');
	        // 4.发送
	        xhr.send();
	        // 5.事件绑定 处理服务器返回的结果
	        xhr.onreadystatechange = function () {
	            // readystate 是 xhr 对象中的属性 有 0 1 2 3 4
	            // 判断(4 表示服务端返回了所有的结果)
	            if (xhr.readyState == 4) {
	                if (xhr.status >= 200 && xhr.status < 300) {
	                    // 处理结果有: 行 头 空行 体
	                    // 1.响应行  
	                    // 2.将响应体 返回到客户端页面中
	                    $('div').html(xhr.response);
	                }
	
	            }
	            else {
	
	            }
	        }
	    })
	</script>
	
	</html>

5.


第二种原生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>

    <style>
        #result{
          width: 200px;
          height: 100px;
          border: solid 1px #90b;  
        }
    </style>

</head>
<body>
    
    <button>
        点击显示数据
    </button>
    <div id="result"></div>
    <script>
        const btn = document.getElementsByTagName('button')[0];

        const result = document.getElementById("result")


        btn.onclick = function(){
            const xhr = new XMLHttpRequest
            xhr.open('GET','http://127.0.0.1:8111/all');

            xhr.onreadystatechange = function(){

                if(xhr.readyState===4&&xhr.status===200){
                    
                    
                   result.innerHTML = xhr.response
                    
                }
            }
            xhr.send();
        }
    </script>
</body>
</html>


第三种jQuery的方式

<!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>
    <script src="jquery-3.6.0.js"></script>

    <style>
        #result {
            width: 200px;
            height: 100px;
            border: solid 1px #90b;
        }
    </style>
</head>

<body>
    <button>
        点击显示数据
    </button>
    <div id="result"></div>

    <script>
        $(function () {
            $('button').click(function () {
                $.get('http://127.0.0.1:8111/all', function (data) {
                    // console.log(data.list[0])
                    // document.getElementById("result").innerHTML = data.list[0].id

                    var users = data.list

                    var str = ''
                    // 方式一,用${}和piao
                    // for (var i = 0; i < users.length; i++) {

                    //     str += '<table><thead><tr><th>id</th><th>name</th> <th>password</th></tr> </thead><tbody><tr>' +
                    //         `<td>${users[i].id}</td>` +
                    //         `<td>${users[i].username}</td>` +
                    //         `<td>${users[i].password}</td>` +
                    //         '</tr></tbody></table>';
                    // }
                    // $("#result").html(str)


                    //方式二,用each
                    $.each(users,function(i,item){
                        str+='<table><thead><tr><th>id</th><th>name</th> <th>password</th></tr> </thead><tbody><tr>' +
                            '<td>'+item.id+'</td>' +
                            '<td>'+item.username+'</td>' +
                            '<td>'+item.password+'</td>' +
                            '</tr></tbody></table>';
                    })
                    //append是在原有基础上增加,html是替换
                    $("#result").append(str)
                })
            })
        })



    </script>
</body>

</html>

第四种axios

<!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>
   <script src="axios.min.js"></script>
    <style>
        #result{
          width: 200px;
          height: 100px;
          border: solid 1px #90b;  
        }
    </style>
</head>
<body>
    <button>
        点击显示数据
    </button>
    <div id="result"></div>

    <script>
        const btn =document.getElementsByTagName("button")
        axios.defaults.baseURL = 'http://127.0.0.1:8111'
        btn[0].onclick=function(){
            axios.get('/all')
            .then(response=>{
                console.log(response)
            }).catch(error=>{

            })
        }
    </script>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值