前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >vue axios跨域问题的三种解决方案_vue如何实现跨域

vue axios跨域问题的三种解决方案_vue如何实现跨域

作者头像
全栈程序员站长
发布于 2022-10-03 07:31:49
发布于 2022-10-03 07:31:49
1.1K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

vue3为例:

  • 【vue.config.js】文件,目录里面没有的话需要真机创建 代理的它通俗意思:我这里设置api意思就是在遇到于/api开始的接口的时候,间本地地址转化为接口地址 如:http://localhost:8080/api 等价于 http://123.123.122.166:3101
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
module.exports = {
  devServer: {
    proxy: {
      '/api': {       
        // 目标的路径
        target: 'http://123.123.122.166:3101',  //也就是接口地址
        // 允许跨域
        changeOrigin: true,
        // 重写跨域
        pathRewrite: {
          '^/api': ''
        }
      }
    }
  }
}

在main.js的axios调用接口的时候

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//这个是我采用了开发时和发布时的环境设置
//方法1
const BASEURL = process.env.NODE_ENV === 'production' ? '' : '/api' 
let instance = axios.create({
  baseURL: BASEURL,
  timeout: 30000,
  withCredentials: true
})// 如果你们不需要搞开发时还是发布时就这样
//方法2:
let instance = axios.create({
  baseURL: '/api',   //这里就是vue.config.js文件里面设置的代理 /api
  timeout: 30000,
  withCredentials: true
})

//或者
axios.defaults.baseURL = "/api";

使用的时候

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
methods:{
    async addClick(){
        let {data:res} = await this.$http.get('/user/mobileLogin',{params:{userName:this.userName,passWord:this.passWord}})
    }
}

请求的网络如上图,前部分 http://localhost:8080/api 会在浏览器内部等价于 http://123.123.122.166:3101 接口地址,使用实际上的请求是 http://123.123.122.166:3101/user/mobileLogin?userName=admin&password=123456

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/197309.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月4日 下,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • vue3为例:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档