vue 打包上传到服务器后,用服务器域名访问,页面能显示出来,但是没有请求后台数据

后台console报错:

    
vendor.079528d0399e130331bb.js:12 TypeError: x is not a function
at a.getData (app.6ef2ec9d0b2dc1783aed.js:1)
at a.created (app.6ef2ec9d0b2dc1783aed.js:1)
at wt (vendor.079528d0399e130331bb.js:12)
at a.e._init (vendor.079528d0399e130331bb.js:12)



如果用本地ip做前缀访问,数据请求一切正常

没见过这个问题,请求大神指点,多谢多谢!! 

config- index.js

dev: {
env: require('./dev.env'),
host: 'xx.1.xx.xx',   //我本地地址
port: 8888,
autoOpenBrowser: false,
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: {
  '/backxxxxxx': {    //后端项目名

    target: 'http://xxxx.sxxxxxx.cn/', // 服务器域名

    changeOrigin: true,
    pathRewrite: {
      '^/bxxxx': '/bxxxxxx'
    }
  }
},

阅读 4.7k
3 个回答

proxyTable设置的接口代理是开发环境才有效的,具体接口地址可以看一下你拦截器里面设置的baseURL,上线前需要设置为服务器域名或者注释掉

config-index.js中dev 配置的是在本地的请求后台的相关配置,上传到正式或测试服务器,域名配置是在prod.env.js文件中

proxyTable 是webpack的 devServer 使用的,打包的话 可以在prod.env.js 里写
ROOT_URL:' " " '; (注意单冒号里带双冒号)
然后在 使用 axios 的js文件上写

const ROOT_URL=process.env.ROOT_URL;
export const root = ROOT_URL;
在请求时 就可以写类似:
export const userLogin = (query) => axios.post(${root}/api/authenticate,query),
这样打包后 axios就会 直接请求
http :// IP:port/api/authenticate

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