本地启动两个项目,调取另一个node项目的数据接口,跨域了

本地启动两个项目,一个是vue cli项目在8080端口,一个是node数据接口项目在4000端口,现在我想调用4000端口的接口数据,跨域了。
这是我在8080端口vue项目写的一个代理

dev: {
    env: require('./dev.env'),
    port: 8080,
    autoOpenBrowser: true,
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
    proxyTable: {
        '/api': {
            target: 'http://192.168.1.43:4000',
            changeOrigin: true,
            pathRewrite: {
                '^/api': ''
            }
        }
    },

现在我需要用axios获取4000端口的数据

getData() {
    let _this = this;

    _this.axios.get('/api/playlist/detail',{'id':24381616})
        .then(function(res) {
            _this.listdata = res;
        })
        .catch(function (res) {
            console.log(res)
        })
}

一直报跨域错误
clipboard.png

阅读 3.9k
2 个回答

如果只是解决开发时的跨域问题,推荐一个Chrome插件Allow-Control-Allow-Origin: *,另外你这Node项目和Vue项目都是在一台机器上吧?试试改成http://127.0.0.1:4000呢。
我之前是这样写的,可以用

dev: {
    // ...
    proxyTable: {
        '/api': {
            target: 'http://127.0.0.1:3000/api/',
            changeOrigin: true,
            pathRewrite: {
                '^/api': ''
            }
        }
    },
    // ...
}

噗 ... node设置允许跨域不就行了 ...

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