Axios
Axios是一个基于promise的网络请求库,安装npm install --save axios
-
局部引入:组件中引入
import axios from "axios"
-
全局引入:main.js中引入,并挂载
// 在main.js中全局引入 import axios from "axios" // 挂载到全局 const app= createApp(App) app.config.globalProperties.$axios=axios app.mount('#app')
Axios在组件中使用
<script> // 引入querystring库,供post请求使用 import qr from "querystring"; export default { name: 'App', // 在渲染完成后进行网络请求 mounted(){ // get请求 this.$axios.get("http://xxx/xx?id=1") .then(res =>{ console.log(res.data) }) // Post请求,body需要使用querystring转换成字符串,网络请求不传输对象 this.$axios.post("http://xxx/xx", qr.stringify( {"phone":null,"name":null} ) ).then(res =>{ console.log(res.data) }) } } </script>
Axios封装
配置axios的请求拦截和响应拦截
import axios from "axios" import qr from "querystring" // 创建实例 const instace = axios.create({timeout:500}) // 请求拦截器 instance.interceptors.request.user( config=>{ ..., return config }, error=>{ ..., return xxx } ) // 响应拦截器 instance.interceptors.response.user( response=>{ ... }, error=>{ ... } ) export default instance;
网络请求跨域
同源策略是浏览器的一项安全策略,浏览器只允许JS代码请求与当前 协议、服务器域名、端口 相同的数据接口上的数据。
JS采取的就是同源策略,所以会有跨域问题。
目前两种跨域解决方案:
-
后端解决:CROS。添加
header:access-control-allow-origin
-
前端解决:proxy。在
vue.config.js
文件中添加配置,添加配置后重启服务才会生效
module.exports = defineConfig({ devServer:{ proxy:{ '/api':{ target: '协议+ip+端口', // 会出现跨域的协议+ip+端口 changeOrigin: true } } } })
标签:...,Axios,请求,vue,querystring,网络,axios,import From: https://www.cnblogs.com/yjh1995/p/17533244.html