Vue的axios封装问题

发布于 2022-09-12 12:58:21 字数 69 浏览 17 评论 0

求解,这个应该怎么配置,网上咋写的都有,还有跨域问题,后台给的接口都会跨域吗,必须在 proxyTable: {}里面配置吗

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

无语# 2022-09-19 12:58:21

跨域一般是后台处理

臻嫒无言 2022-09-19 12:58:21

一般都是为了一些基本项目配置

  1. 异常处理,比如说500、404这些,只有200才进行后续的操作,有的还会对错误码进行判断。
  2. content-type
  3. timeout

一般来说给你的接口都不会跨域,proxyTable 是让你在本地开发的时候用的。

站稳脚跟 2022-09-19 12:58:21

axios拦截器封装接口调用
可以参考一下我这个,封装axios为了统一的错误处理,配置请求头(token、content-type等),通过请求拦截器/响应拦截器实现相应的逻辑。
后端给到我们接口,我们本地开发肯定是需要配置代理的,不然无法跨域访问接口。上线部署时,配置nginx代理,通过访问nginx服务器代理指向后端的服务器。

北恋 2022-09-19 12:58:21

后端在配置文件中配置跨域,在开发过程中vue中可以使用porxy来暂时处理跨域问题.
vuecli proxy 配置

一萌ing 2022-09-19 12:58:21

axios 封装是为了对请求和响应做统一处理。
封装成什么样看自己的需求。

porxy是本地联调后端线上的api用的。在本地开发会产生跨域,所以需要配置。
线上环境跨域属于nginx配置范围。

如果有使用node中间件,可以在node中解决跨域。

忆悲凉 2022-09-19 12:58:21

后端给的接口会不会跨域,这个要看后端有没有开cors(安全性),需要proxyTable配置代理
不做代理也可以,还可以在封装axios的时候判断环境做相对应的操作

// 配置接口地址(路径处理函数)考虑跨域情况下

let filterUrl = url =>{
    let baseUrl;
    if(process.env.NODE_ENV === "development"){
        baseUrl = "本地api";
    }else{
        baseUrl = "生产api"
    }
    if (url && url.startsWith("http")) {
    return url;
  }
  return baseUrl + url;
}
许仙没带伞 2022-09-19 12:58:21

配置代理在vue.config.js中找到devServer>proxy
`devServer: {
// development server port 8000
port: 8000,
// If you want to turn on the proxy, please remove the mockjs /src/main.jsL11
proxy: {

'/admin': {
  target: 'http://xxx.xxxx.cn/admin/',
  changeOrigin: true,
  pathRewrite: {
    '^/admin': ''
  }
},

'/api': {

  target: 'http://xxxx.xxxx.cn/api/',
  changeOrigin: true,
  pathRewrite: {
    '^/api': ''
  }
}

}
},`

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文