vue配置跨域不生效怎么办?

3131975015
  • 411

接手别人的项目 下面这样请求报跨域 也重启试了

mounted(){
      axios.get('api/banner').then(res=>{
          console.log(res)
      })
}

下面这些跨域配置都是我自己配的
vue.config.js如下

let devServer = {
    host: 'localhost',
    port: 8080,
    https: false,
    open: true,
    proxy: {
        '/api': {
            target: 'https://laravel.godehi.cn/',
            ws: false,
            port: 8080,
            changeOrigin: true,
            pathRewrite: {
                 '^/api': ''
            },
        }
    }
}

config目录下index.js配置如下

const configObj = {
    isDevelop: (isDev || isTest),
    ...configDict[currentConfigKey],
    // h5模式宽高
    canvasH5Width: 500,//375
    canvasH5Height: 500,//644
    dev: {
            host: 'localhost',
            port: 8080,
            https: false,
            open: true,
            proxy: {
                '/api': {
                    target: 'https://laravel.godehi.cn/',//设置你调用的接口域名和端口号 别忘了加http
                    ws: false,
                    port: 8080,
                    changeOrigin: true,
                    pathRewrite: {
                        '^/api': ''
                    }
                }
            }
        }
}

export default configObj

根目录下还有一个config.json文件 这个文件我没动 我看axios全局配置的文件里面axios的baseURL就是指向这个baseURL的 axios.defaults.baseURL = $config.baseURL

config.json文件如下

{
  "port": "4000",
  "adminAccount": "admin",
  "db": {
    "servername": "localhost",
    "DATABASE": "admin",
    "port": 27017,
    "user": "",
    "pass": "",
    "authSource": "admin"
  },
  "baseURL": "https://laravel.godehi.cn/"
}
回复
阅读 374
1 个回答
✓ 已被采纳

onfig.json件里的baseURL改为空串试试,这样访问才能是http://localhost:port/api/banner
vue.config.js文件里的

 pathRewrite: {
   '^/api': ''
}

这段去掉,不需要重写path,因为你的接口里是有api这个context-path

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