fetch,axios 发送请求

225 阅读1分钟

1.使用nodemon自动启动工具启动模拟的服务器

//运行服务器

nodemon server.js

// axios服务
app.all('/axios-server',(request,response)=>{
    response.setHeader('Access-Control-Allow-Origin','*');
    response.setHeader('Access-Control-Allow-Headers','*');
    // 响应一个数据
    const data = {
        name:'加油~'
    }
    // 对对象进行字符串转换
    let str = JSON.stringify(data);
    response.send(str);
});

引入在线的axios包

<script crossorigin="anonymous"  src="https://cdn.bootcdn.net/ajax/libs/axios/0.26.1/axios.js"></script>`

axios的发送AJAX请求

 const btns = document.querySelectorAll('button');
        // 配置 baseURL
        axios.defaults.baseURL = 'http://127.0.0.1:8000';
        // GET请求
        btns[0].onclick = function(){
            axios.get('/axios-server',{
                // url参数
                params:{
                    id:100,
                    vip:7
                },
                // 请求头信息
                headers:{
                    name:'lily',
                    age:'20'
                }
            }).then(value=>{
                console.log(value);
            })
        }
        // POST请求
        btns[1].onclick = function(){
            axios.post('axios-server',{
                // 请求体
                data:{
                    username:'admin',
                    password:'admin'
                },
                // URL参数
                params:{
                    id:200,
                    vip:8
                },
                // 请求头信息
                headers:{
                    name:'tony',
                    age:18
                }
            }).then(value=>{
                console.log(value);
            })
        }
          
        btns[2].onclick = function(){
        //Axios请求
            axios({
                // 请求方法
                method:'POST',
                //URL
                url:'/axios-server',
                //URL参数
                params:{
                    vip:10,
                    level:30
                },
                // 头信息
                headers:{
                    a:100,
                    b:200
                },
                // 请求体参数
                data:{
                    username:'admin',
                    password:'admin'
                }
            }).then(Response=>{
                console.log(Response);
                console.log(Response.status);
                console.log(Response.statusText);
                console.log(Response.headers);
            })

        }
    </script>

fetch发送请求

then方法返回的是一个promise方法

 const btn = document.querySelector('button');

        btn.onclick = function(){
            fetch('http://127.0.0.1:8000/fetch-server?vip=10',{
                // 请求方法
                method:'post',
                // 请求头
                headers:{
                    name:'lily',
                },
                // 请求体
                body: 'username = admin && password = admin',
            }).then(response =>{
                // 获取数据
                return response.json();
                // return response.text();
            }).then(response=>{
                console.log(response);
            });
        }