• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

vue怎么实现第三方请求

武飞扬头像
PHP中文网
帮助51

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('服务异常,请稍后重试!');
});

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanffcbf
系列文章
更多 icon
同类精品
更多 icon
继续加载