Ajax01


小概

本章开始ajax的学习,今日份学习内容:jQ中ajax的两种请求方式(get,post),带参数请求,json数据格式了解,xml格式了解(已弃用)。


1.利用jQ发起get请求

1.1 无参请求

语法:
$.get({

url:’ 请求接口地址’,
success:function(res/backData){
//当请求成功之后,会执行的回调函数,`回调函数的形参:是后台返回的 数据,一般永res或backData表示 (result结果,backData返回数据)
}
})

//你会得到一个笑话
            $.get(
                {
                    url:'https://autumnfish.cn/api/joke',
                    success: function(backData) {
                        console.log(backData);
                    }
                }
            )

请求带不带参数,取决于后台的接口文档

1.2 带参数请求

      $.get(
            {
                url:'https://autumnfish.cn/api/joke/list',
                data: {
                    num: 10
                },
                success: function (backData) {
                    console.log(backData);
                }
            }
        )

data参数出了可以用对象键值对的方法,还可以是字符串的形式,data:‘key=value’ 多个参数:data:‘key1=value1&key2=value2&…’ 。

2. 利用jQ发起post请求

是发去get请求还是post请求,带不带参数,都是后台接口文档决定的。
简单的post请求写法和get格式差不多,但是两者是存在区别的,get安全性比post差,get传参大小没有post大 等等一系列差别,后面我会具体归纳比较一下

这是一个简单的post请求案例

    $(function(){
        // 发起post请求,添加图书信息
        $.post(
            {
                url:'http://www.liulongbin.top:3006/api/addbook',
                data: {
                    bookname:'间客',
                    author:'猫腻',
                    publisher:'起点中文网'
                },
                success: function (backData) {
                    console.log(backData);
                }
            }
        )
     })

3. json数据格式

json: 是一种数据格式,后台能够理解的一种数据格式
json的数据格式与传统的js对象格式非常像,左侧的key添加上引号

  • js对象转换json对象(JSON.stringify(obj)方法)
    1. 声明一个js对象
    let obj = {
        name:'笨笨',
        age: 38,
        gender:'可爱的男孩子'
    }

    // 2. 将js对象转换json对象
    let jsonObj = JSON.stringify(obj);

    console.log(obj);
    console.log(jsonObj); 

我们向后台请求数据,请问后台返回的数据是什么类型???
:请求回来的原始数据其实也是json格式的,只不过jQ内部封装的时候将json对象转成js对象(JSON.parse(json数据))

  • 原生jsget请求
    // 拓展: 原生的get请求,先了解,后面再详细解析
    let xhr = new XMLHttpRequest();
    xhr.open('get','http://www.liulongbin.top:3006/api/getbooks');
    xhr.onload = function () {
        // 打印后台返回的数据(原生请求返回的数据)
        console.log(xhr.response);
        // 服务器返回的数据,最原始的格式就是json
        // 将json对象转成js对象
        console.log(JSON.parse(xhr.response));
    }
    xhr.send();

注意:json.stringify() 和json.parse()可以用来做深拷贝,let newobj = JSON.stringify(oldobj),let newobj = JSON.parse(newobj)。先js对象转json对象,在用parse方法转成js对象,一来一去就可以实现深拷贝。

4.xml格式处理

xml数据格式,在json还没有普及之前最常用的数据格式
体积太大,包含的数据有些时候比格式还要少
类似html标签

    // 发起ajax请求获得xml数据
    $.get(
        {
            url:'https://autumnfish.cn/api/food.xml',
            success: function (xmlData) {
                // 此时返回的是xml格式数据
                console.log(xmlData);

                // 返回的数据并不是对象格式,所以无法直接使用点语法
                // 获得第一道菜的信息
                console.log(xmlData.getElementsByTagName('food'));
                console.log(xmlData.getElementsByTagName('food')[0]);
                
                // 获得第一道菜的名字
                console.log(xmlData.getElementsByTagName('food')[0].getElementsByTagName('name')[0]);
                console.log(xmlData.getElementsByTagName('food')[0].getElementsByTagName('name')[0].innerHTML);
            }
        }
    )
  • 了解即可

总结

ajax还是非常重要的一个知识点,前端而言,大部分时间都在拿数据 处理数据 渲染数据,vue的axios其实原来也类似ajax,还是得吃透的。
还有就是get请求和post请求区别和应用场景。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值