web建站教程
  1. 首页
  2. vuejs
  3. js
  4. 好玩
  5. seo教程
  6. 前端知识
  7. 百度echarts
  8. 更多
    php入门
    nodejs
    mockjs
    reactjs
    mysql
    wordpress
    织梦cms
    帝国cms
    git教程
    IT知识
    模板大全
    休息站

vue3中axios的使用方法独到之处

767 ℃
     

今天给大家介绍一下vue3axios的使用方法独到之处?axios主要是用于向后台发起请求的,还有在请求中做更多是可控功能。

1、安装

npm install axios

2、新建axios.js配置

import axios from "axios";
import qs from "qs";

axios.defaults.baseURL = ''  //接口路径

//post请求头
axios.defaults.headers.post["Content-Type"] ="application/x-www-form-urlencoded;charset=UTF-8";
//设置超时
axios.defaults.timeout = 10000;

axios.interceptors.request.use(
  config => {
    return config;
  },
  error => {
    return Promise.reject(error);
  }
);
 
axios.interceptors.response.use(
   response => {
      if (response.status == 200) {
        return Promise.resolve(response);
      } else {
        return Promise.reject(response);
      }
   },
  
   error => {
      alert(`异常请求:${JSON.stringify(error.message)}`)
   }
);
export default {
  //post方法
  post(url, data) {
    return new Promise((resolve, reject) => {
      axios({
        method: 'post',
        url,
        data: qs.stringify(data),
      }).then(res => {
        resolve(res.data)
      }).catch(err => {
        reject(err)
      });
    })
  },
  //get方法
  get(url, data) {
    return new Promise((resolve, reject) => {
      axios({
        method: 'get',
        url,
        params: data,
      }).then(res => {
        resolve(res.data)
      }).catch(err => {
        reject(err)
      })
    })
  }
};

3、vue页面引用

getList: function () {
  const _this = this;
  axios.get("/list", {
  	// id: 1
  }).then(function (res) {
  	console.log(res.data);
  	let _res = res.data || [];
  	if (_res && _res.length > 0) {
  		_this.code = res.code;
  		_this.msg = res.msg;
  		_this.books = _res;
  	}
  }).catch(function (error) {
  	console.log(error);
  })
}

4、注意事项

问题1:vue3 axios Error: Network Error

跨域请求问题,我是在后端拦截器类中处理的 ,重写 addCorsMappings 方法

//跨域问题
@Override
public void addCorsMappings(CorsRegistry registry) {
  registry.addMapping("/**")
     .allowedHeaders("*")
     .allowedMethods("*")
     .allowedOriginPatterns("*")
     .allowCredentials(true);
}

问题2:Cannot set properties of undefined (setting 'books')或者ReferenceError: books is not defined

不能直接给变量赋值,需要通过 methods 方法中 const _this = this; 获取变量赋值;

vue 请求接口代码需要放置methods,且在created()或者mounted()周期函数中调用该方法。

问题3:Uncaught ReferenceError: Vue is not defined或者Cannot read properties of undefined (reading 'get')

vue3不是通过Vue对象挂载,后面我每个页面直接引用了axios(目前vue3好像只有这种方式)

vue安装axios脚手架报“ ./node_modules/axios/lib/core/mergeConfig.js”错误解决方法

Element UI中文官网Element Plus是一套基于Vue3.0的桌面端组件库

vue3项目如何正确引入新版高德地图(完整代码)

vue3如何解决store.state.count错误的取值

vue3相对于vue2有哪些新特性?

标签: axios, vue3

上面是“vue3中axios的使用方法独到之处”的全面内容,想了解更多关于 vuejs 内容,请继续关注web建站教程。

当前网址:https://ipkd.cn/webs_2304.html

声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

当前位置: 网站首页 > vuejs
本文共计1821个字,预计阅读时长13分钟
生活小工具,收录了80多款小工具
上一篇: 推荐一款完全免费的 Windows 软件卸载、清理工具——HiBit Uninstaller
下一篇: 推荐一款可免费商用圆体字库——江城圆体
x 打工人ai神器