nodejs+express基于http-proxy-middleware实现前端跨域问题

第一步:cmd窗口进入nodejs项目目录下:

执行如下命令:

$ npm install --save-dev http-proxy-middleware

让后在server.js文件中

写入如下:

const express = require('express');
const app = express();
/***************************** 开始启动反向代理 **********************************/
var proxy = require('http-proxy-middleware');//引入nodejs的反向代理模块
// proxy middleware options
var options = {
    target: 'http://127.0.0.1:9090', // target host
    changeOrigin: true,               // needed for virtual hosted sites
};
// create the proxy (without context)
var exampleProxy = proxy('/api-sso/*',options);
app.use(exampleProxy);
/***************************** 开始启动反向代理 **********************************/

/**************************** 开启服务监听 ******************************/
app.listen('3000', function() {
    console.log('启动项目mpmdFront,端口:3000');
});

举例:前端为服务器地址为127.0.0.1:3000,其中如要直接访问http://127.0.0.1:9090/api-sso/*的地址资源就会出现跨域问题,

此配置var exampleProxy = proxy('/api-sso/*',options);就是将/api-sso/*访问资源代理访问到http://127.0.0.1:9090/api-sso/*的地址服务器中去。

ajxa调用如下:

以上的代理配置就会将http://127.0.0.1:3000/api-sso/*的请求,转达到http://127.0.0.1:9090/api-sso/*服务器上去。以达到一个前端跨域解决方法。里面的options详细配置

可参考官网:https://www.npmjs.com/package/http-proxy-middleware

其中options为参数选项:

target:为要代理的目标url

猜你喜欢

转载自my.oschina.net/u/2364025/blog/1802910