码迷,mamicode.com
首页 > Web开发 > 详细

使用proxyTable 解决webpack+vue-cli+vue-resource中跨域问题

时间:2017-07-12 10:05:49      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:ber   服务端   解决   dex   blog   write   pack   简化   文件   

技术分享

当游览器报这样的错时,表示你的请求需要跨域!

这里,我说的是使用webpack+vue-cli+vue-resource中跨域问题,

 

config文件下面有index.js文件里有一个叫proxyTable的配置参数

proxyTable: {
      ‘/restful‘:{
        target:‘http://xxxxx/member/service/‘,
        changeOrigin:true,
        pathRewrite:{//可以不写
            ‘^/restful‘:‘/restful‘
        }
      }
    },

changeOrigin这参数设置为true的时候,就可以虚拟一个本地代理的服务接收请求这样就可以解决跨域问题了target是你请求接口的域名

接口调用的时候可以这么写

this.$http.post(commonUrl + "/restful/member?op=getMember&access_token=111", {
          op: ‘getMember‘,
        }).then(response => 
        }, response => {

        });
      },

有关于API proxy的说明,使用的就是这个参数。
https://vuejs-templates.github.io/webpack/proxy.html

这个参数主要是一个地址映射表,你可以通过设置将复杂的url简化,例如我们要请求的地址是api.xxxxxxxx.com/list/1,可以按照如下设置:

 

proxyTable: {
  ‘/list‘: {
    target: ‘http://api.xxxxxxxx.com‘,
    pathRewrite: { //可以不写
      ‘^/list‘: ‘/list‘
    }
  }
}

 

这样我们在写url的时候,只用写成 /list/1 就可以代表api.xxxxxxxx.com/list/1.
那么又是如何解决跨域问题的呢?其实在上面的‘list‘的参数里有一个changeOrigin参数,接收一个布尔值,如果设置为true,那么本地会虚拟一个服务端接收你的请求并代你发送该请求,这样就不会有跨域问题了,当然这只适用于开发环境。增加的代码如下所示:

 

proxyTable: {
  ‘/list‘: {
    target: ‘http://api.xxxxxxxx.com‘,
    changeOrigin: true,
    pathRewrite: {
      ‘^/list‘: ‘/list‘
    }
  }
}

 

使用proxyTable 解决webpack+vue-cli+vue-resource中跨域问题

标签:ber   服务端   解决   dex   blog   write   pack   简化   文件   

原文地址:http://www.cnblogs.com/jeyhan520/p/7153614.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!