vue-cli3解决跨域问题

前提:vue-cli3与vue-cli2不同的地方是,vue-cli2有config和build文件夹,但是vue-cli3没有,所以相关的配置文件要自己建

解决:
(1)在项目的根目录建vue.config.js文件,书写如下内容

module.exports = {
  devServer: {
    open: true, // 是否自动弹出浏览器页面
    host: "localhost",
    port: '8080',
    proxy: {
      '/api': {
        target: 'http://xxxx:8000', // 请求服务器根路径
        changeOrigin: true, // 是否跨域
        ws: true, // websocket
        pathRewrite: { // 重写路径: 当检测到请求地址里包含 /v1 时,将此路径进行跨域代理操作
          '^/api': '/api'
        }
      }
    }
  }
}

(2)在main.js设置axios的默认路径

import axios from 'axios'
axios.defaults.baseURL = "http://xxxx:8000"

(3)用axios请求数据

import axios from 'axios'
  export default {
    data() {
      return {
        images: []
      }
    },
    async created () {
      await axios.get('api/v1/banners/').then(res => {
        this.images = [].concat(res.data.data)
        // console.log(this.images)
      })
      .catch(function (error) {
        console.log(error.response)
      })
    }
  }

需要注意的是url的拼接是否正确,可以通过浏览器检查来查看request的url

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue-cli中的问题可以通过配置代理服务器来解决。在vue.config.js配置文件中,可以使用devServer的proxy选项来设置代理。具体操作如下: 1. 在项目根目录下找到vue.config.js文件。 2. 找到devServer选项,并在其中添加proxy配置。 3. 在proxy中设置需要代理的请求地址,以及目标地址。 4. 重启项目,验证问题是否解决。 例如,如果需要代理请求地址以/api开头的请求,并将其转发到线上的地址,可以按照以下格式配置proxy: ```javascript module.exports = { devServer: { // ...省略其他配置 proxy: { '/api': { target: 'http://线上的地址' } } } } ``` 同时,需要确保在axios请求中不设置baseURL,即去掉baseURL配置项。然后重启项目,验证问题是否解决。 请注意,这种代理配置只适用于开发阶段,不适用于生产环境。\[2\] #### 引用[.reference_title] - *1* *3* [如何解决问题以及vuecli开发环境用代理服务器解决问题](https://blog.csdn.net/weixin_45371730/article/details/121892285)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [vue-cli解决问题](https://blog.csdn.net/Moraxz/article/details/128414628)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值