解决跨域问题

75 阅读1分钟

第一步:在vue.config.js中配置如下内容

devServer: {

    proxy: {

      '/api': {

        target: 'http://localhost:3000/'

      }

    }

  }

配置完之后一定要重新启动项目:npm run serve

第二步 ,请求接口里写代理服务器地址

created(){
    axios.get('/api')

    .then(res=>{

      console.log(res)

    })

  }

let http 服务端文件server.js代码如下:

http.createServer((req,res)=>{

    /* 这句话是允许跨域用的 */

    // res.setHeader('Access-Control-Allow-Origin','*')

    /* 下面是后端返回的结果 */

    res.end('taotao:man not too fast')

    /* 3000是端口 */

}).listen(3000,function(){

    console.log('server start...')

})

在当前目录下启动服务使用命令:node server.js  不需要终止服务,继续运行npm run serve

终止服务:ctrl+c

重启就是先ctrl+c 再node server.js

执行多个并发请求

 data(){

    return {

      url1:'https://cnodejs.org/api/v1/topics',

      url2:'https://cnodejs.org/api/v1/topic/5ae140407b0e8dc508cca7cc'

    }

  },
    created(){

Promise.all([axios.get(this.url1) , axios.get(this.url2)])

    .then(res=>{

      /* 两个请求都执行完毕了再返回结果 */

      console.log(res)

    })

    // axios.all([ axios.get(this.url1) , axios.get(this.url2) ])

    // .then( axios.spread( (res1,res2)=>{

    //   /* 两个请求都执行完毕了再返回结果 */

    //   console.log(res1)

    //   console.log(res2)

    // }) )
  }

}

两者的区别,一个返回的是数组形式,一个返回的是两个参数