vue中跨域处理

9 篇文章 0 订阅

今天一个vue的项目开发环境localhost调用后端接口,提示跨域了,我按照以往的处理方式希望后端加一个Access-Control-Allow-Origin,但是这后端的哥们始终没有加成功,后面旁边一个常弄vue项目的同事说可以在vue的webpack文件中配置跨域,这可刷新了我的想法,这个我以前是不知道的,或者有看视频听别人说过,但是自己并没有注意,这下算是遇到了。网上搜索了一下别人的问题和答案,经过使用是正解。另外改完配置文件一定要重启项目才会生效。

在根目录下config的index.js文件中配置

开发环境配置在dev中

changeOrigin:true    //是否跨域

target:目标接口域名

/iclient': {}, 就是告诉node, 我接口只要是'/iclient'开头的才用代理.所以你的接口就要这么写 /iclient/xx/xx. 最后代理的路径就是 http://xxx.xx.com/iclient/xx/xx.

可是不对啊, 我正确的接口路径里面没有/iclient啊. 所以就需要 pathRewrite,用''^/iclient'':'', 把'/iclient'去掉, 这样既能有正确标识, 又能在请求接口的时候去掉iclient.

再摘抄一例子:

dev: {
  env: require('./dev.env'),
  port: 8080,
  autoOpenBrowser: true,
  assetsSubDirectory: 'static',
  assetsPublicPath: '/',
  proxyTable: {
    '/api': {  //接口只要是这个开头的才用代理
      target: 'http://www.abc.com',  //目标接口域名
      changeOrigin: true,  //是否跨域
      pathRewrite: {
        '^/api': '/api'   //重写接口
      }
    },
  cssSourceMap: false
}

上面这段代码的效果就是将本地8080端口的一个请求代理到了http://www.abc.com这一域名下:

'http://localhost:8080/api' ===> 'http://www.abc.com/api'

我这边的使用实践,是没有问题的。

配置了pathRewrite这种,在实际调用时是加了/code的,但是这个会被替换为/。

 dev: {
    // Paths
    assetsSubDirectory: 'static',
    assetsPublicPath: '/oum/',
    proxyTable: {
      '/oum_api':{
        target:'http://30.18.22.75',
        changeOrigin: true
      },
      '/code':{
        target:'http://30.16.11.112',
        changeOrigin: true,
        pathRewrite:{//这种在实际调用时是加了/code的,但是这个会被替换为/
          '^/code':'/'
        }
      }
    },

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值