美文网首页
不动产项目汇总:

不动产项目汇总:

作者: Mr_Dragonn | 来源:发表于2019-04-11 11:30 被阅读0次

    1.解决跨域问题:

    解决办法:使用node-mitmproxy模块进行代理

    // proxy.js文件
    //引入模块
    const mitmproxy = require('node-mitmproxy');
    
    //定义需要代理的域名
    const hosts = ['****.com.cn', '****.com.cn', '****.cn'];
    //定义需要排除的接口
    const ignorePathes = ['/wx', '/zwapi'];
    //创建代理
    mitmproxy.createProxy({
        sslConnectInterceptor: function(req, cltSocket, head) {
            return false;
        },
    
    
    
        //拦截客户端发起的请求
        requestInterceptor: function(rOptions, req, res, ssl, next) {
        //参数说明:
        //requestOptions:客户端请求参数
        //clientReq: 客户端请求,
        //clientRes: 客户端响应,
        //ssl: 该请求是否为https
        //next: 回调函数,执行完拦截逻辑后调用该方法
         console.log(rOptions.hostname, rOptions.port, rOptions.path);
    //判断拦截的请求域名是否是需要代理的域名 如果有则把域名和端口改为本地
            if ( hosts.indexOf(rOptions.hostname) > -1 &&
              !ignorePathes.some(p => rOptions.path.startsWith(p))
            )   {
                rOptions.hostname = 'localhost';
                rOptions.port = 8080;
            }
            next();
        },
    //拦截服务端请求/响应
        responseInterceptor(req, res, proxyReq, proxyRes, ssl, next) {
            console.log(req.url, proxyRes.statusCode);
            next();
        },
    });
    

    使用方式:
    在package.json 的scripts中添加 startproxy
    依赖模块中加入node-mitmproxy

      "scripts": {
        "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
        "start": "npm run dev",
        "build": "node build/build.js",
        "startproxy": "node build/proxy.js"
      },
      "devDependencies": {
          "node-mitmproxy": "^3.1.0"
    }
    
    npm run startproxy
    
    代理开启后 默认开启的端口是  6789
    在浏览器端设置代理:本地6789端口 让浏览器发起的请求都经过proxy.js文件处理,
    如果发起的请求满足拦截条件则改为访问本地文件
    
    注意:配置完成后可能会出现Invalid Host header错误
    解决办法  在webpack.dev.config.js 的 devServer中添加
    disableHostCheck: true,
    

    //todo proxyTable

    //在build/config/index.js中添加
    dev:{
       proxyTable: {
                "/wx": {
                    target: "http://bdcgzh.cafewallet.com.cn",
                    changeOrigin: true
                },
                "/zwapi": {
                    target: "http://bdcgzh.cafewallet.com.cn",
                    changeOrigin: true
                }
            },
    }
    
    

    相关文章

      网友评论

          本文标题:不动产项目汇总:

          本文链接:https://www.haomeiwen.com/subject/fuktbqtx.html