zoukankan      html  css  js  c++  java
  • 关于vue2用vue-cli搭建环境后域名代理的http-proxy-middleware解决api接口跨域问题

    在vue中用http-proxy-middleware来进行接口代理,比如:本地运行环境为http://localhost:8080但真实访问的api为 http://www.baidu.com这时我们就需要把http://www.baidu.com代理到api接口上

    在build下的 dev-server.js 中我们需要对下面代码进行修改

    var proxyMiddleware = require('http-proxy-middleware');

    var proxyMiddleware = require('http-proxy-middleware')
    
    var server = express()
    
    server.middleware = [
            proxyMiddleware(['/mobile'], {target: 'http://baidu.com', changeOrigin: true}),
            proxyMiddleware(['/school'], {target: 'http://baidu.com', changeOrigin: true}),
            proxyMiddleware(['/api/track'], {target: 'http://baidu.com', changeOrigin: true}),
            proxyMiddleware(['/manage/integral'], {target: 'http://baidu.com', changeOrigin: true}),
    ];
    
    server.use(server.middleware);

    这里需要注意需要把接口调用的开始部分分别写在 proxyMiddleware中 如 /mobile是代表你访问的接口为 http://baidu.com/mobile/ 开头的所有接口 相当于http://baidu.com/mobile/*

    在调用的时候我们用 vue-resource,在main.js中引入

    vue-resource 的安装方式:  npm install --save-dev vue-resource

    import VueResource from 'vue-resource'
    
    Vue.use(VueResource)

    在页面中具体调用为

                this.$http.get('/mobile/api/h5/', {params: {name:1,type:2}}).then((response) => {
                         response = response.body;
                         if (response.errno === 0) {
                                this.goods = response.data;
                         }
                });

    到这里我们就完成了vue的代码域名代理,如有错误,或错别字欢迎大家留言指正!

  • 相关阅读:
    Update操作一定是先Delete再Insert吗?
    asp.net中的并发控制
    asp.net2.0下利用javascript实现treeview中的checkbox全选
    Json
    SQL Server2005 事务隔离级别
    设计概念模型
    前沿视频教程
    PowerDesigner使用
    表单 数字字符验证正则
    CharIndex對比Replace
  • 原文地址:https://www.cnblogs.com/kbnet/p/6860045.html
Copyright © 2011-2022 走看看