IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 学习AJAX必知必会(4)~JQuery发送Ajax请求、ajax使用fetch函数(返回值是Promise对象) -> 正文阅读

[JavaScript知识库]学习AJAX必知必会(4)~JQuery发送Ajax请求、ajax使用fetch函数(返回值是Promise对象)

一、JQuery发送Ajax请求

■ 对于get和post请求,jQuery内部封装了Ajax请求的4个步骤和数据格式的设置

■ 对于Ajax通用请求,jQuery内部封装了Ajax请求的4个步骤和数据格式设置、超时设置、请求失败设置


(1)jquery-server的get请求:

  • 客户端html处理:

        //$.get(url, [data], [callback], [type]) 
    
        $('button').eq(0).click(function () {
           //$get方法的回调参数接收一个data作为参数---是服务端响应回来的数据(响应体),然后设置响应的数据格式为json
           $.get('http://127.0.0.1:8000/jquery-server', {a:1, b:2}, function (data) {
               console.log(data);
           }, 'json');
        });
    
  • 服务端jquery-server请求的处理:

    app.get('/jquery-server', (request, response) => {
        //设置响应头(允许跨域)
        response.setHeader('Access-Control-Allow-Origin', '*');
        //响应回去一个json对象
        const data = {
            name: '小黑',
            age: 18,
            sex: '男'
        };
        //设置响应体
        response.send(JSON.stringify(data));
    });
    

(2)jquery-server的post请求:

  • 客户端html处理:

        //$.post(url, [data], [callback], [type]) 
    
        $('button').eq(1).click(function () {
            //$get方法的回调参数接收一个data作为参数---是服务端响应回来的数据(响应体),然后设置响应的数据格式为json
            $.post('http://127.0.0.1:8000/jquery-server', {a:1, b:2}, function (data) {
                console.log(data);
            }, 'json');
        });
    
  • 服务端jquery-server请求的处理:

    app.post('/jquery-server', (request, response) => {
        //设置响应头(允许跨域)
        response.setHeader('Access-Control-Allow-Origin', '*');
        //响应回去一个json对象
        const data = {
            name: '小白',
            age: 18,
            sex: '男'
        };
        //设置响应体
        response.send(JSON.stringify(data));
    });
    

?(3)jquery-server的通用ajax请求:

  • 客户端html处理:

     $('button').eq(2).click(function () {
        $.ajax({
            url: 'http://127.0.0.1:8000/jquery-server/delay',//请求路径
            data: {a:1,b:2,c:3},//请求参数(请求体)
            type:'get',//请求方式
            headers:{'Content-Type': 'application/x-www-form-urlencoded'},//请求头
            dataType: 'json',//请求的数据格式
            timeout:4000,//超时设置
            success: function (data) {//请求成功的回调
                console.log(data);
            },
            error: function () {//请求失败的回调
                console.log('请求出错');
            }
        });
     });
    
  • 服务端jquery-server请求的处理:

    //jquery-server请求超时处理
    app.get('/jquery-server/delay', (request, response) => {
        //设置响应头(允许跨域)
        response.setHeader('Access-Control-Allow-Origin', '*');
        //响应回去一个json对象
        const data = {
            name: '小迟',
            age: 18,
            sex: '男'
        };
        //设置响应体
        setTimeout(() => {
            response.send(JSON.stringify(data));
        }, 3000)
    });
    

(4) jQuery 发送jsonp请求:

  • 客户端html处理:
 <button>点击发送 jsonp 请求</button>
 <div id="result"></div>
  
 <script>
    $('button').eq(0).click(function(){
    // jquery封装的ajax的jsonp请求需要有一个callback参数
        $.getJSON('http://127.0.0.1:8000/jquery-jsonp-server?callback=?', function(data){
            $('#result').html(`
                名称: ${data.name}<br>
                 校区: ${data.city}
             `);
        });
     });
 </script>
  • 服务端jquery-server请求的处理:
app.all('/jquery-jsonp-server',(request, response) => {
    // response.send('console.log("hello jsonp")');
    const data = {
        name:'小明',
        city: ['北京','上海','深圳']
    };
    //将数据转化为字符串
    let str = JSON.stringify(data);
    //接收 callback 参数
    let cb = request.query.callback;

    //返回结果
    response.end(`${cb}(${str})`);
});



二、ajax使用fetch函数(类似axios,返回值是Promise对象)

  • 客户端html处理:

    btn2.onclick = function () {
            fetch('http://127.0.0.1:8000/fetch-server?a=1&b=2',{
                method: 'post',
                headers: {
                    'Content-Type': 'application/x-www-form-urlencoded'
                },
                //请求体body(数据格式可以是字符串,也可以是json对象)
                // body: 'name=小明&age=16&sex=男'
                body: {
                    name: '小明',
                    age: 16,
                    sex: '男'
                }
            }).then(response => {
                //若响应回来的数据格式是字符串,响应回来的数据,需要通过text方法转化一下,json格式的话,则需要通过json方法转化一下
                return response.text();
                // return response.json();
            }).then(response => {
                console.log(response);
            })
        }
    
  • 服务端fetch函数的请求处理:

    app.post('/fetch-server', (request, response) => {
        //设置响应头(允许跨域)
        response.setHeader('Access-Control-Allow-Origin', '*');
        //响应回去一个字符串对象
        const data = '小白白';
        response.send(data);
        //响应回去一个json对象
        // const data = {
        //     name: '小白',
        //     sex: '男'
        // };
        // response.send(JSON.stringify(data));
    });
    
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-01-24 10:44:41  更:2022-01-24 10:47:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 12:31:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码