如何将Vue Axios封装的http.js中接口公用配置和拦截操作改写为一个长尾?

2026-04-03 00:501阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计719个文字,预计阅读时间需要3分钟。

如何将Vue Axios封装的http.js中接口公用配置和拦截操作改写为一个长尾?

创建一个简单的记录,在Vue项目中配置通用的HTTP请求,并在`src/utils/http.js`中导入axios和其他所需模块:

javascript在src/utils/http.js中import axios from 'axios';import { MessageBox, Message } from 'element-ui';import Qs from 'qs'; // 引入数据格式化工具

// 创建axios实例const http=axios.create({ baseURL: 'https://your-api-url.com', // 设置基础URL timeout: 10000 // 设置请求超时时间});

// 请求拦截器http.interceptors.request.use(config=> { // 在这里可以添加请求头信息,如token等 return config;}, error=> { // 请求错误处理 return Promise.reject(error);});

// 响应拦截器http.interceptors.response.use(response=> { // 请求成功,处理响应数据 return response;}, error=> { // 响应错误处理 if (error.response) { // 请求已发出,但服务器响应的状态码不在2xx范围内 MessageBox.error(error.response.data.message); } else if (error.request) { // 请求已发出,但没有收到响应 Message.error('No response received'); } else { // 发送请求时出了点问题 Message.error('Error sending request'); } return Promise.reject(error);});

export default http;

如何将Vue Axios封装的http.js中接口公用配置和拦截操作改写为一个长尾?

做一下记录,在vue项目中配置公用的请求easy-mock.com/mock/' // 这是调用数据接口,公共接口url+调用接口名 let www.test.com' // 这是调用数据接口,公共接口url+调用接口名 } else if (localhost:8088/' } else { console.log('开发环境', 192.168.6.138:8080/' // 这是调用数据接口,公共接口url+调用接口名 } // ***.***.*.**:8080/', // 测试环境 timeout: 1000 * 10, // 请求超时的毫秒数,如果请求花费超过timeout的时间,请求将被中断 withCredentials: true, // 表示跨域请求时是否需要使用凭证,默认fasle headers: { 'Cache-Control': 'no-cache' } // 不允许缓存,需要重新获取请求 }) // 添加请求拦截器 service.interceptors.request.use(config => { // 在发送请求之前做些什么 return config }, error => { // 对请求错误做些什么 return Promise.reject(error) }) // 添加响应拦截器 axios.interceptors.response.use(response => { // 对响应数据做点什么 return response }, error => { // 对响应错误做点什么 return Promise.reject(error) })

以上是对axios的初步封装,具体功能根据实际需求在service.js文件中进行配置

四、全局使用使用service(也可以局部使用,稍后会说明局部使用方法)

第一步:在main.js中进行挂载

import { service } from './service'

Vue.prototype.service = service

第二步:使用

// 注意:这里必须要使用async 和 await ,不然请求状态一直是Promise {<pending>},拿不到请求数据 async created () { let data = await this.service.get('menu/user/tree') console.log(data) //此时能拿到请求的数据 }

五、局部使用service,在组件内先引入再使用

<script> import { service } from '../service' export default { name: 'HelloWorld', data () { return { msg: 'sds' } }, async created () { let data = await service.get('menu/user/tree') console.log(data) } } </script>

以上这篇vue axios封装httpjs,接口公用配置拦截操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持易盾网络。

本文共计719个文字,预计阅读时间需要3分钟。

如何将Vue Axios封装的http.js中接口公用配置和拦截操作改写为一个长尾?

创建一个简单的记录,在Vue项目中配置通用的HTTP请求,并在`src/utils/http.js`中导入axios和其他所需模块:

javascript在src/utils/http.js中import axios from 'axios';import { MessageBox, Message } from 'element-ui';import Qs from 'qs'; // 引入数据格式化工具

// 创建axios实例const http=axios.create({ baseURL: 'https://your-api-url.com', // 设置基础URL timeout: 10000 // 设置请求超时时间});

// 请求拦截器http.interceptors.request.use(config=> { // 在这里可以添加请求头信息,如token等 return config;}, error=> { // 请求错误处理 return Promise.reject(error);});

// 响应拦截器http.interceptors.response.use(response=> { // 请求成功,处理响应数据 return response;}, error=> { // 响应错误处理 if (error.response) { // 请求已发出,但服务器响应的状态码不在2xx范围内 MessageBox.error(error.response.data.message); } else if (error.request) { // 请求已发出,但没有收到响应 Message.error('No response received'); } else { // 发送请求时出了点问题 Message.error('Error sending request'); } return Promise.reject(error);});

export default http;

如何将Vue Axios封装的http.js中接口公用配置和拦截操作改写为一个长尾?

做一下记录,在vue项目中配置公用的请求easy-mock.com/mock/' // 这是调用数据接口,公共接口url+调用接口名 let www.test.com' // 这是调用数据接口,公共接口url+调用接口名 } else if (localhost:8088/' } else { console.log('开发环境', 192.168.6.138:8080/' // 这是调用数据接口,公共接口url+调用接口名 } // ***.***.*.**:8080/', // 测试环境 timeout: 1000 * 10, // 请求超时的毫秒数,如果请求花费超过timeout的时间,请求将被中断 withCredentials: true, // 表示跨域请求时是否需要使用凭证,默认fasle headers: { 'Cache-Control': 'no-cache' } // 不允许缓存,需要重新获取请求 }) // 添加请求拦截器 service.interceptors.request.use(config => { // 在发送请求之前做些什么 return config }, error => { // 对请求错误做些什么 return Promise.reject(error) }) // 添加响应拦截器 axios.interceptors.response.use(response => { // 对响应数据做点什么 return response }, error => { // 对响应错误做点什么 return Promise.reject(error) })

以上是对axios的初步封装,具体功能根据实际需求在service.js文件中进行配置

四、全局使用使用service(也可以局部使用,稍后会说明局部使用方法)

第一步:在main.js中进行挂载

import { service } from './service'

Vue.prototype.service = service

第二步:使用

// 注意:这里必须要使用async 和 await ,不然请求状态一直是Promise {<pending>},拿不到请求数据 async created () { let data = await this.service.get('menu/user/tree') console.log(data) //此时能拿到请求的数据 }

五、局部使用service,在组件内先引入再使用

<script> import { service } from '../service' export default { name: 'HelloWorld', data () { return { msg: 'sds' } }, async created () { let data = await service.get('menu/user/tree') console.log(data) } } </script>

以上这篇vue axios封装httpjs,接口公用配置拦截操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持易盾网络。