vue-cli proxyTable配置了 为什么还是不能跨域?

Maldivee
  • 135

我后台的请求地址是 https://wd7175036853tpzaxl.wilddogio.com
但是我的公共接口是 https://wd7175036853tpzaxl.wilddogio.com/api
比如我请求/list 实际上请求的是 https://wd7175036853tpzaxl.wilddogio.com/api
我要请求/detail 实际上请求的是 https://wd7175036853tpzaxl.wilddogio.com/api/detail
那么,问题来了,1.如何解决命名冲突?下面这么写可以吗?
2.这是开发环境的配置,上线的时候怎么办呢?

 proxyTable: {
      '/api/**': {//这里直接写/api和我后面公共的api命名冲突???/api/**是什么意思?
        target: 'https://wd7175036853tpzaxl.wilddogio.com',
        secure: true,  
        changeOrigin: true,
        pathRewrite: {
          '^/api': '/'   //这里如何写啊?
        }
      }

图片描述

图片描述
图片描述

图片描述
问题已参照下面老师的回答更新,然而还是没有解决啊。
参考网上这么写的,可是就是访问不到数据啊,还是报错啊!!!请各位老师帮忙分析一下我该怎么办
我现在只有后台给我的一个接口,用这种方式能实现跨域吗?这种方式好像无效的啊

评论
阅读 5.5k
3 个回答

clipboard.png

然后像下面这样调用

clipboard.png
相当于你访问了http://localhost:8087/www/logout/severToken

process.env.NODE_ENV === 'development' ? '/api' : '' 这段代码是你自己加上的
以下是我加的

clipboard.png

1、代理地址可以这样写,你在调试工具看的那个请求地址不是真正的请求地址,就算代理配置成功了它显示的也还是localhost:8080

proxyTable: {
  '/api': {
    target: `https://wd7175036853tpzaxl.wilddogio.com/api/`,
    changeOrigin: true,
    pathRewrite: {
      '^/api': ''
    }
  }
},

2、其实你不是配置了axios.defaults.baseURL么,直接配baseURL然后上面的代理配置注释掉就可以正常请求了。
至于跨域报错问题需要后台进行配置

vue爬坑
  • 2
新手上路,请多包涵

那个/api就代替了那个http…,直接get(/api/list)就好,你这样写相对于没用那个

宣传栏