vue怎么实现第三方请求

前端技术 03/18 Vue

vue实现第三方请求的方法:1、通过“import axios from 'axios';”导入axios;2、将axios放在原型链上;3、添加请求拦截器,代码如“axios.interceptors.request.use(config => {...}”。

vue怎么实现第三方请求

本教程操作环境:Windows10系统、vue3版、DELL G3电脑

vue怎么实现第三方请求?

在vue中请求第三方数据--axios

1 axios -> 基于Promise对象 -> async & await

2 create阶段 -> 返回Promise对象 -> 返回的数据可以直接解构【数据处理】

  • 要写入实例的数据(即页面渲染使用的数据),需要用配置参数data接收

3 import axios from 'axios';

4 多次导入、使用的axios -> 将axios放在原型链上

import axios from 'axios';
Vue.prototype.axios = axios;

5 请求方法的别名

  • axios.request(config)

  • axios.get(url[, config])

  • axios.delete(url[, config])

  • axios.head(url[, config])

  • axios.options(url[, config])

  • axios.post(url[, data[, config]])

  • axios.put(url[, data[, config]])

  • axios.patch(url[, data[, config]])

6 拦截器

// 添加请求拦截器
axios.interceptors.request.use(config => {
  // 在发送请求之前做些什么
  return config;
}, error => {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// 添加响应拦截器
axios.interceptors.response.use(response => {
  // 对响应数据做点什么
  return response;
}, error => {
  // 对响应错误做点什么
  return Promise.reject(error);
});

6.1 请求拦截应用

axios.interceptors.request.use(config => {
  // 在发送请求之前做些什么
  let token = sessionStorage.getItem('userTk');
  if (token) {
    config.headers.Authorization = token
  }
  return config
}, error => {
  // 对请求错误做些什么
  return Promise.reject(error);
});

6.2 响应拦截应用

axios.interceptors.response.use(response => {
  if (response.data.code === '200') {
    Auth.setToken(sessionStorage.getItem('userId'))
  }
  return response;
},
error => {
  console.warn(error);
  console.warn(error.response);
  if ((error.response.status && error.response.status === 401) || error.response.statusCode === 401) {
    // 已超时
    Auth.removeToken(sessionStorage.getItem('userId'));
    sessionStorage.clear();
    router.replace('/login')
    return Promise.reject('身份已过期,请重新登录!');
  }
  if(error.response && error.response.status === 500)
  return Promise.reject('服务异常,请稍后重试!');
});

推荐学习:《》

以上就是vue怎么实现第三方请求的详细内容,更多请关注本站点其它相关文章!

本文地址:https://www.stayed.cn/item/27042

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。