axios

axios
摘要由CSDN通过智能技术生成

get和post

最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。

HTTP的底层是TCP/IP。所以GET和POST的底层也是TCP/IP,也就是说,GET/POST都是TCP链接。GET和POST能做的事情是一样一样的。你要给GET加上request body,给POST带上url参数,技术上是完全行的通的。 

GET和POST还有一个重大区别,简单的说:

GET产生一个TCP数据包;POST产生两个TCP数据包。

对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);

而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

不同类型的请求及其作用

1. GET: 从服务器端读取数据

2. POST: 向服务器端添加新数据

3. PUT: 更新服务器端已经有的数据

4. DELETE: 删除服务器端数据 

服务器端都是http请求。

XHR的API

 1. XMLHttpRequest(): 创建 XHR 对象的构造函数

2. status: 响应状态码值, 比如 200, 404

3. statusText: 响应状态文本

4. readyState: 标识请求状态的只读属性

        0: 初始 1: open()之后 2: send()之后 3: 请求中 4: 请求完成

5. onreadystatechange: 绑定 readyState 改变的监听

6. responseType: 指定响应数据类型, 如果是'json', 得到响应后自动解析响应体数据为JSON,

如果不声明,数据则为json文本,需要通过JSON.parse()解析数据

7. response: 响应体数据, 类型取决于 responseType 的指定

8. timeout: 指定请求超时时间, 默认为 0 代表没有限制

9. ontimeout: 绑定超时的监听

10. onerror: 绑定请求网络错误的监听

11. open(): 初始化一个请求, 参数为: (method, url[, async])(影响send)

12. send(data): 发送请求(可能是同步可能是异步)

同步:等待响应结果,如果请求要花两秒钟,则send执行两秒钟才结束,才执行下面的代码

异步:不用等待响应结果,继续执行下面的代码

13. abort(): 中断(发出去还没有返回的)请求

请求头的值才是要传递的数据,名称只是数据的标识。

14. getResponseHeader(name): 获取指定名称的响应头值

15. getAllResponseHeaders(): 获取所有响应头组成的字符串

16. setRequestHeader(name, value): 设置请求头

启动json-server: 

json-server --watch db.json

使用axios函数发送请求

axios返回一个promise对象

<script>
        const btns = document.querySelectorAll('button')
        //获取数据
        btns[0].onclick = function(){
            axios({
                method:"GET",
                url:'http://localhost:3000/posts/2',
            }).then((resolve)=>{
                console.log(resolve)
            })
        }
        //添加新的文章
        btns[1].onclick = function(){
            axios({
                method:"POST",
                url:'http://localhost:3000/posts',
                //设置请求体
                data: {
                    title: "今天天气不错, 还挺风和日丽的",
                    author: "张三"
                }
            }).then((resolve)=>{
                console.log(resolve)
            })
        }
        //更新数据
        btns[2].onclick = function(){
            axios({
                method:"PUT",
                url:'http://localhost:3000/posts/3',
                //设置请求体
                data: {
                    title: "今天天气不错, 还挺风和日丽的",
                    author: "张三三"
                }
            }).then((resolve)=>{
                console.log(resolve)
            })
        }
        //删除数据
        btns[3].onclick = function(){
            axios({
                method:"DELETE",
                url:'http://localhost:3000/posts/3',
                //设置请求体
            }).then((resolve)=>{
                console.log(resolve)
            })
        }
</script>

使用axios的方法发送请求

axios(config): 通用/最本质的发任意类型请求的方式

axios(url[, config]): 可以只指定 url 发 get 请求

axios.request(config): 等同于 axios(config)

axios.get(url[, config]): 发 get 请求

axios.delete(url[, config]): 发 delete 请求

axios.post(url[, data, config]): 发 post 请求

axios.put(url[, data, config]): 发 put 请求

axios.defaults.xxx: 请求的默认全局配置

axios.interceptors.request.use(): 添加请求拦截器

axios.interceptors.response.use(): 添加响应拦截器

axios.create([config]): 创建一个新的 axios(它没有下面的功能)

axios.Cancel(): 用于创建取消请求的错误对象

axios.CancelToken(): 用于创建取消请求的 token 对象

axios.isCancel(): 是否是一个取消请求的错误

axios.all(promises): 用于批量执行多个异步请求

axios.spread(): 用来指定接收所有成功数据的回调函数的方法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值