美文网首页
nodejs做http请求转发,解决js跨域问题(一)

nodejs做http请求转发,解决js跨域问题(一)

作者: 嗷大喵 | 来源:发表于2019-06-27 17:51 被阅读0次

    解决js跨域,常见的方式有下几种

    1.JSONP

    2.CROS

    3.通过中间server做转发

    今天我们来讲一下用nodejs来做http请求的转发
    需要用到的模块
    express、path、http-proxy-middleware
    新建一个Proxy目录,在目录里新建一个proxy.js

    var express = require('express');
    var proxy = require('http-proxy-middleware');
    var app = express();
    var path = require('path');
    
    app.use(express.static(path.join(__dirname, 'public')));
    var targetUrl = "http://xxxx.xxx.xx/";
    app.use('/Image/*', proxy({target: targetUrl, changeOrigin: true}));
    app.use('/Account/*', proxy({target: targetUrl, changeOrigin: true}));
    
    app.get('/', function (req, res) {
        res.sendFile(path.join(__dirname, 'public/index.html'));
    });
    app.listen(3000);
    

    在Proxy目录里再新建一个public目录,把HTML,css,js,images等都放到public目录里面

    当你访问http://127.0.0.1:3000/的时候,会自动指向public/index.html

    你index.html里面发的符合要求的请求(/Image/* 或者 /Account/*)的会自动转发到http://xxxx.xxx.xx/里面

    例如index.html里面有个ajax请求
    请求地址是http://127.0.0.1:3000/Image/Upload
    将会自动转发到http://xxxx.xxx.xx/Image/Upload

    function submitText () {
            $.ajax({
                    type:'POST',
                    url:'/Image/Upload',
                    headers:{
                        'Content-Type':'application/json',
                        'Token':'xxxxxxxxxxxxx',
                    },
                    data:JSON.stringify({'FileName':'1.jpg','Base64Content':document.getElementById("showText").value}),
                    success:function(data){
                        console.log(data)
                    },
                    error:function (err) {
                        console.log(err);
                    }
                })
        }
    

    在命令行进入Proxy目录,依次执行命令

    npm install path
    npm install express
    npm install http-proxy-middleware
    node proxy.js
    

    浏览器打开http://127.0.0.1:3000/就能访问public目录下index.html了

    相关文章

      网友评论

          本文标题:nodejs做http请求转发,解决js跨域问题(一)

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