vue网络请求方案原生网络请求和js网络请求库

 更新时间:2021年11月23日 16:07:58   作者:tby_37  
这篇文章主要为大家介绍了网络请求方案原生网络请求和js网络请求库的过程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步

一、 原生网络请求

1. XMLHttpRequest(w3c标准)   

// 没有promise时的产物

当时的万物皆回调,太麻烦

2. Fetch   

// html5提供的对象,基于promise 因为promise的存在,为了简化网络请求。

使用 Fetch - Web API 接口参考 | MDN

Fetch是新的ajax解决方案 Fetch会返回Promise对象。fetch不是ajax的进一步封装,而是原生js,没有使用XMLHttpRequest对象。

参数:

1、第一个参数是URL:

2、第二个设置请求的参数,是可选参数

3、返回使用了Promise 来处理结果/回调

fetch(url, options).then(res=>res.json()/text()).then(ret=>console.log(ret))

兼容性问题:

ie低版本不兼容Fetch怎么办? =》 用第三方的Fetch库【fetch-polyfill】

使用fetch进行网络请求 let url1  url2  两个地址同时执行完毕后才进行相关操作 Promise.all

let url1 不管它是否执行成功我都要去处理 Promise.finally

 

 

fetch封装网络请求

二、 js网络请求库

axios

以promise类型返回 json 数据。

文档:使用说明 · Axios 中文说明 · 看云

Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和node.js中。

能拦截请求和响应,自动转换JSON数据。axios也是vue作者推荐使用的网络请求库。

// axios.get/post/put/delete
axios.get(url,config) // config可以设置头信息
axios.post(url,data,config)
axios.put(url,data,config)
axios.delete(url,data,config)

或通过实例请求

 

通过实例请求,添加设置信息(常用)!

不通过实例做统一设置(不常用),因为是给所有人都设置

// 统一给axios设置
axios.defaults.timeout = 10000
axios.defaults.baseURL = 'http://localhost:3000'
axios.defaults.headers.a = 'admin'

post提交

// post提交
axios.post(url, { id: 1, name: 'aaaa' }).then(res => console.log(res.data))

 或者    axios直接用 # 标准写法(也不常用)

// axios直接用
axios({
  url,
  method:'get',
  data:{}
}).then(res => console.log(res))

拦截器   切面编程

(流水线)   (中间件)

1. 请求拦截器(能调用多次)

axios.interceptors.request.use(config => {
  // 统一设置请求域名地址
  config.baseURL = 'http://localhost:3000'
  // 超时时间
  config.timeout = 1000
  // 设置头信息
  config.headers.token = 'mytoken login'
  return config;
}, err => Promise.reject(err))

2. 响应拦截器(处理、过滤)

axios.interceptors.response.use(response => {
  return response.data
}, err => {
  // 可以在响应拦截器中统一去处理,请求异常
  alert('请求失败了,请重新请求一次')
  return Promise.reject(err)
});

以上就是网络请求方案原生网络请求和js网络请求库的详细内容,更多关于原生网络请求和js网络请求库的资料请关注脚本之家其它相关文章!

相关文章

  • vue的组件通讯方法总结大全

    vue的组件通讯方法总结大全

    这篇文章主要为大家介绍了非常全面vue的组件通讯方法总结,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • vue中的非父子间的通讯问题简单的实例代码

    vue中的非父子间的通讯问题简单的实例代码

    这篇文章主要介绍了vue中的非父子间的通讯问题简单的实例代码,需要的朋友可以参考下
    2017-07-07
  • springboot + vue+elementUI实现图片上传功能

    springboot + vue+elementUI实现图片上传功能

    文章描述了如何使用Element UI的el-upload组件实现前端图片上传,并将图片存储到后端数据库,同时在页面上回显上传的图片,后端通过接口接收图片,并将其存储在指定位置,然后返回图片路径以便在前端显示,本文给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2025-01-01
  • Vue组件之Tooltip的示例代码

    Vue组件之Tooltip的示例代码

    这篇文章主要介绍了Vue组件之Tooltip的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • 前端axios取消请求总结详解

    前端axios取消请求总结详解

    这篇文章主要为大家介绍了前端axios取消请求总结示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • antd form表单使用setFildesValue 赋值失效的解决

    antd form表单使用setFildesValue 赋值失效的解决

    这篇文章主要介绍了antd form表单使用setFildesValue 赋值失效的解决方案,具有很好的参考价值,希望对大家有所帮助。
    2023-04-04
  • Vue3中reactive丢失响应式的问题解决(避大坑!)

    Vue3中reactive丢失响应式的问题解决(避大坑!)

    这篇文章主要给大家介绍了关于Vue3中reactive丢失响应式的问题解决,vue3中reactive定义的引用类型直接赋值导致数据失去响应式 ,需要的朋友可以参考下
    2023-07-07
  • 关于Vue的 Vuex的4个辅助函数

    关于Vue的 Vuex的4个辅助函数

    这篇文章主要介绍了关于Vue的 Vuex的4个辅助函数,辅助函数的好处就是帮助我们简化了获取store中state、getter、mutation和action,下面我们一起来看看文章具体的举例说明吧,需要的小伙伴也可以参考一下
    2021-12-12
  • Vue和React中快速使用Electron的简单教程

    Vue和React中快速使用Electron的简单教程

    Electron也可以快速地将你的网站打包成一个原生应用发布,下面这篇文章主要给大家介绍了关于Vue和React中快速使用Electron的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • vue如何在main.js中配置全局的通用公共组件

    vue如何在main.js中配置全局的通用公共组件

    这篇文章主要介绍了vue如何在main.js中配置全局的通用公共组件问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01

最新评论