vue-cli配置proxyTable无效

see311
  • 384

使用vue-cli 2.9创建的项目

  • config/index.js
    proxyTable: {
      '/UTRY':{
        target:'http://192.168.0.143:9300',
        changeOrigin:true,
        pathRewrite:{
          '^/UTRY':'/UTRY'
        }
      }
    }
  • build/webpack.dev.conf.js
devServer:{
  proxy: config.dev.proxyTable,
}
  • axios
const baseURL = "http://192.168.0.143:9300"
const $http = axios.create({
  baseURL
})
  • xxx.vue
this.$http
  .post("/UTRY/tsupport_workbench/rest/loginCtrl/getMenu")

重启,删除node_modules都试过了,并没有任何代理迹象。。。
控制台还是报跨域

Access to XMLHttpRequest at 'http://192.168.0.143:9300/UTRY/tsupport_workbench/rest/loginCtrl/getMenu' from origin 'http://127.0.0.1:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Network

Request URL: http://192.168.0.143:9300/UTRY/tsupport_workbench/rest/loginCtrl/getMenu

请问该如何配置呢?

回复
阅读 3.7k
4 个回答
✓ 已被采纳

既然已经配置代理了,axios就不需再设置baseURL了,不然不会经过代理处理。

const baseURL = "http://192.168.0.143:9300"

改成

const baseURL = ""

设置proxyTable之后,不能再设置baseURL

跨域问题处理:开发环境使用 proxyTable 配置反向代理,生产环境如果使用的是nginx服务器,则可以在nginx上面配置反向代理,所以接口域名一般都配置在服务器上

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏