vue中使用axios最详细教程

前提条件:vue-cli 项目

安装:

npm
npm
在main.js导入:

// 引入axios,并加到原型链中
import axios from 'axios';
Vue.prototype.$axios = axios;
import QS from 'qs'
Vue.prototype.qs = QS;

封装好的axios,拿走不送:(最好是在main.js同级目录创建一个 https.js 文件,复制粘贴下面代码,改 接口地址 就可以用)


import axios from 'axios'
import qs from 'qs'axios.defaults.timeout = 5000;                        //响应时间
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';        //配置请求头
axios.defaults.baseURL = '';   //配置接口地址//POST传参序列化(添加请求拦截器)
axios.interceptors.request.use((config) => {//在发送请求之前做某件事if(config.method  === 'post'){config.data = qs.stringify(config.data);}return config;
},(error) =>{console.log('错误的传参')return Promise.reject(error);
});//返回状态判断(添加响应拦截器)
axios.interceptors.response.use((res) =>{//对响应数据做些事if(!res.data.success){return Promise.resolve(res);}return res;
}, (error) => {console.log('网络异常')return Promise.reject(error);
});//返回一个Promise(发送post请求)
export function fetchPost(url, params) {return new Promise((resolve, reject) => {axios.post(url, params).then(response => {resolve(response);}, err => {reject(err);}).catch((error) => {reject(error)})})
}
返回一个Promise(发送get请求)
export function fetchGet(url, param) {return new Promise((resolve, reject) => {axios.get(url, {params: param}).then(response => {resolve(response)}, err => {reject(err)}).catch((error) => {reject(error)})})
}
export default {fetchPost,fetchGet,
}

开发环境一般要跨域,解决跨域问题(设置代理):vue-cli 3.0的在 package.json 同级目录新建一个 vue.config.js 文件,加入下面代码,其他版本找到配置文件的devServer加入代码


module.exports = {//axios域代理,解决axios跨域问题baseUrl: '/',devServer: {proxy: {'': {target: 'http://192.168.0.108:8090',changeOrigin: true,ws: true,pathRewrite: {}}}}
}

修改完后记得重启项目应用配置
然后就到收获的时候了,在要请求的vue模块中导入并使用:


import https from '../https.js'   // 注意用自己的路径// 请求后台数据==================loginPost: function () {let params ={'username': 'admin', 'password': 'admin123', 'rememberMe': 'true','isMobile':'1'}https.fetchPost('/login',params ).then((data) => {this.base.token = data.data.token    // console.log("this.base.tokenthis.base.token",this.base.token)this.indexPost2(this.rres)}).catch(err=>{console.log(err)})},indexPost2:function (date) {var this_ = thisthis_.check = falsevar jobj ={data:{'menuDate': date,'token':this.base.token}}let string  = JSON.stringify(jobj)let params = {dailyInfo:string}https.fetchPost('/meals/mobile/getDailyMenuByDate', params).then((data) => {this_.base.indexData = datathis_.check = true// console.log('thenthenthenthen',data)}).catch((err)=>{console.log(err)})},// ================================================},

文字不是很多,但重要的都在这,看代码的注释就行了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/249830.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 类型转换String,List,Map,Array

1. JsonString转为Map String jsoNStr "{\n" "\t\"TestArray\": [\"1\", \"2\", \"3\"]\n" "}";Map map JSON.parseObject(jsoNStr,Map.class);2.Object转为JsonArray(得保证obj是个Array数组&#x…

关于固件

固件(Firmware)就是写入EROM或EPROM(可编程只读存储器)中的程序,通俗的理解就是“固化的软件”,台港澳称为“韧体”。更简单的说,固件就是BIOS的软件,但又与普通软件完全不同,它是固化在集成电路内部的程序代码&#x…

React-Native 指定模拟器RUN-IOS

react-native run-ios --simulator "iPhone 7” 转载于:https://www.cnblogs.com/smzd/p/10185263.html

vue和element-ui使用

上一篇已经创建好一个vue项目。https://mp.csdn.net/postedit/80926242 这一篇主要是创建一个vue项目并结合饿了么框架element-ui。 1.先创建vue项目,我准备把项目放在e盘下:E:\Work\RegisterProject; 命令行进入这个目录: 创…

javaweb学习6——自定义标签

声明:本文只是自学过程中,记录自己不会的知识点的摘要,如果想详细学习JavaWeb,请到孤傲苍狼博客学习,JavaWeb学习点此跳转 本文链接:https://www.cnblogs.com/xdp-gacl/p/3916946.html https://www.cnblogs…

goland 实用键

代码补全 option command v转载于:https://www.cnblogs.com/smzd/p/10313417.html

关于Mysql java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)的问题...

问题所在: 1.连接数据库一个是密码是否正确, 2.driver是否对, 3.有么有jar包冲突,转载于:https://www.cnblogs.com/java-123/p/9403412.html

vscode配置vue环境

一、安装VSCode、NodeJS VSCode:https://code.visualstudio.com/ NodeJS:https://nodejs.org/en/ 二、打开VSCode,安装常用插件 如图所示(安装后重新加载即可): 三、项目中添加.vscode文件夹,文件夹中添…

秒杀核心设计(减库存部分)-防超卖与高并发

商品详情页面的静态化,varnish加速,秒杀商品库独立部署服务器这种就略过不讲了。只讨论库存部分的优化 mysql配置层面的优化可以参考我的这篇文章 《关于mysql innodb引擎性能优化的一点心得》 重点设计在数据库层面。 2张表: 第一张&#xf…

go strconv

strconv是golang用来做数据类型转换的一个库。 介绍下strconv最常用的两个方法, 没有解释语言那么自在可以str(int),int(string), 那还算简练。 num, err : strconv.Atoi("-42") str : strconv.Itoa(-42)转换换成bool类型. b, err : strconv.ParseBool("true&qu…

django配置templates、static、media和连接mysql数据库

1.模板文件 # templates配置 if os.path.exists(os.path.join(BASE_DIR, templates)) is False:os.mkdir(os.path.join(BASE_DIR, templates)) TEMPLATES [{# 模板引擎,内置的模板引擎有:# 1. django.template.backends.django.DjangoTemplates# 2. dj…

vue调用顺序(初学版) index.html → main.js → app.vue → index.js → components/组件 测试

关于它是怎么调用运作的:https://mp.csdn.net/postedit/86134414 一. 准备工作: 1.下载webstorm,安装vue。 2.创建项目,cd到要放项目的文件夹下 vue init webpack vue_test 3.安装各种包 npm install 4.运行 cd vue_test …

web开发:jquery之DOM

一、文档结构 二、文档操作 三、文档操作案例 四、form表单 五、正则 六、form案例 一、文档结构 jsvar $sup $(.sup);console.log($sup.children()); // 子们console.log($sup.parent()); // 父console.log($sup.prev()); // 上兄弟console.log($sup.next()); // 下兄弟c…

NO.8:自学python之路------并行socket网络编程

摘要 一到放假就杂事很多,这次的作业比较复杂,做了一个周,进度又拖了。不过结果还不错。 正文 粘包 在上一节中,如果连续发送过多数据,就可能发生粘包。粘包就是两次发送的数据粘在一起被接收,损坏了数据的…

vue项目中主要文件的加载顺序(index.html、App.vue、main.js)

先后顺序: index.html > App.vue的export外的js代码 > main.js > App.vue的export里面的js代码 > Index.vue的export外的js代码 测试的页面代码块: 文件的加载先后顺序: Index.vue的mounted()中的输出没有执行。why&#…

Http请求报头设置(C#)

1、添加一个SetHeaderValue方法: public static void SetHeaderValue(WebHeaderCollection header, string name, string value) { var property typeof(WebHeaderCollection).GetProperty("InnerCollection",BindingFlags.Instance | BindingFlags.NonP…

vue-cli3使用cdn引入

1. index.html引入&#xff1a; <script src"https://cdn.bootcss.com/moment.js/2.20.1/moment.min.js"></script> <script src"https://cdn.bootcss.com/moment.js/2.20.1/locale/zh-cn.js"></script>2. vue.config.js配置&…

vue常用属性

Vue实例常用属性 1.数据 data:Vue 实例的数据对象 components&#xff1a;Vue实例配置局部注册组件 1.类方法 computed:计算属性 watch&#xff1a;侦听属性 filters&#xff1a;过滤器 methods:Vue实例方法 render&#xff1a;渲染函数&#xff0c;创建虚拟DOM 1.生命周期 c…

凸包算法

转载自&#xff1a;https://blog.csdn.net/bone_ace/article/details/46239187 凸包问题的五种解法 2015年05月29日 17:58:51 阅读数&#xff1a;33660前言&#xff1a; 首先&#xff0c;什么是凸包&#xff1f; 假设平面上有p0~p12共13个点&#xff0c;过某些点作一个多边形&a…

一个优雅的占位图解决方案。适用于 UITableView 和 UICollectionView。

FMListPlaceholder 项目地址&#xff1a;https://github.com/yfming93/FMListPlaceholder 一个优雅的占位图解决方案。适用于 UITableView 和 UICollectionView。 一行代码处理空列表占位图逻辑 0x001 与其他的同类三方库对比的优点&#xff1a; 首次进入列表占位图是不显示的。…