Vue下对axios简单封装的操作是什么,要注意什么
Admin 2022-06-09 群英技术资讯 1136 次浏览
这篇文章主要介绍了Vue下对axios简单封装的操作是什么,要注意什么相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue下对axios简单封装的操作是什么,要注意什么文章都会有所收获,下面我们一起来看看吧。把axios注入到Vue中
import axios from 'axios'; Vue.prototype.$axios = axios;
import axios from 'axios'
axios.defaults.timeout = 5000; //响应时间
axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8'; //配置请求头
axios.defaults.withCredentials= true; //带cookie
axios.defaults.baseURL = 'http://localhost:8080/'; //配置接口地址
//POST传参序列化(添加请求拦截器)
axios.interceptors.request.use((config) => {
//在这里可以添加序列化代码,根据后端而定,我用的SSM后端接受Json对象,假如需要序列化可以用qs组件
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,
}
简单测试:
loginPost: function() {
let params = {
'password': '123',
'username': 'admin'
}
http.fetchPost('/login', params).then((data) => {
console.log(data)
}).catch(err => {
console.log(err)
})
},
hello: function() {
http.fetchGet('/hello', "").then((data) => {
console.log(data)
}).catch(err => {
console.log(err)
})
},
post请求:

get请求:

跨域问题,这里是在后端配置的:
在SpringMVC.xml中配置跨域:
<!-- 接口跨域配置 -->
<mvc:cors>
<!-- allowed-methods="*" --> <!-- 表示所有请求都有效 -->
<mvc:mapping path="/**" allowed-origins="*"
allowed-methods="POST, GET, OPTIONS, DELETE, PUT"
allowed-headers="Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With"
allow-credentials="true"/>
</mvc:cors><!-- 接口跨域配置 -->
接口配置:

在Vue中配置 创建一个vue.config.js:

module.exports = {
devServer: {
proxy: {
'/api': {
target: 'http://127.0.0.1:8080',
// 在本地会创建一个虚拟服务端,然后发送请求的数据,并同时接收请求的数据,这样服务端和服务端进行数据的交互就不会有跨域问题
changeOrigin: true,
ws: true,
pathRewrite: {
'^/api': ''
// 替换target中的请求地址,也就是说以后你在请求http://api.jisuapi.com/XXXXX这个地址的时候直接写成/api即可
}
}
}
}
}
后端也能正常获取cookie。

当然要注意下面这个配置,这个是带cookie的原因
axios.defaults.withCredentials= true;
总结
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍js实现上传图片到服务器的功能,下文有实现的代码以及注释,对大家学习怎样实现上传图片到服务器有一定的帮助,感兴趣的朋友可以借鉴参考,接下来小编带着大家一起了解看看。
跨域指浏览器不允许当前页面的所在的源去请求另一个源的数据,下面这篇文章主要给大家介绍了关于VUE跨域详解以及常用解决跨域的方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
这篇文章主要为大家介绍了在Iconfont还是不能上传,要如何维护你的Icon,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪<BR>
目录proxyTable配置和部署服务器1.在config中的index2.在调取接口的方法中proxyTable代理参数含义proxyTable配置和部署服务器在本地创建node.js服务器,前端访问本地接口需要设置跨域1.在config中的index找到proxyTable,完成以下设置proxyTable: {‘
JavaScript字符串转数字怎样做?在实际的项目中,常需要实现数据类型转换,对此本文就给大家简单的介绍一下字符串转数字的方法,对新手学习JavaScript数据类型转换有一定的帮助,接下来我们一起看看吧。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008