node反向代理,解决跨域(http-proxy-middleware)

简介: 使用node.js和http-proxy-middleware库实现反向代理,解决跨域问题,允许前端请求通过代理访问不同端口的服务。

node反向代理,解决跨域

var express = require('express');
//解构赋值
const {
    createProxyMiddleware } = require('http-proxy-middleware');
const app = express();
app.all('*', function (req, res, next) {
   
    console.log("=====================")
    console.log(req.url)
    console.log("=====================")
    res.header("Access-Control-Allow-Origin", req.headers.origin);//访问的主机名称
    //为true的时候,前端必须传送cookie
      res.header('Access-Control-Allow-Credentials','true'); //是否支持cookie跨域
      res.header("Access-Control-Allow-Headers","Origin, X-Requested-With, Content-Type, Accept");
      res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");//允许以下方法进行跨域请求
    next();
});

const options1 = {
   
    target: 'http://XXXX2:8081',
    changeOrigin: true,
};
const options2 = {
   
    target: 'http://XXXX2:8888',
    changeOrigin: true,
    pathRewrite: {
   
        '^/api': '',
    }
};
// 先匹配/api
const exampleProxy1 = createProxyMiddleware('/api', options2);
app.use(exampleProxy1);
const exampleProxy2 = createProxyMiddleware('/', options1);
app.use(exampleProxy2);
app.listen(3003, () => {
   
    console.log(`server running @${
     3003}`);
});

前端访问本地192.168.xx.xx:3003

目录
相关文章
|
2月前
|
缓存 JavaScript 安全
nodejs里面的http模块介绍和使用
综上所述,Node.js的http模块是构建Web服务的基础,其灵活性和强大功能,结合Node.js异步非阻塞的特点,为现代Web应用开发提供了坚实的基础。
126 62
|
4月前
|
缓存 应用服务中间件 API
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(三)
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(三)
65 3
|
4月前
|
缓存 安全 应用服务中间件
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(二)
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(二)
128 1
|
4月前
|
负载均衡 Java API
深度解析SpringCloud微服务跨域联动:RestTemplate如何驾驭HTTP请求,打造无缝远程通信桥梁
【8月更文挑战第3天】踏入Spring Cloud的微服务世界,服务间的通信至关重要。RestTemplate作为Spring框架的同步客户端工具,以其简便性成为HTTP通信的首选。本文将介绍如何在Spring Cloud环境中运用RestTemplate实现跨服务调用,从配置到实战代码,再到注意事项如错误处理、服务发现与负载均衡策略,帮助你构建高效稳定的微服务系统。
109 2
|
4月前
|
JavaScript 应用服务中间件 测试技术
[译] 为何要对生产环境的 Node.js 使用反向代理?
[译] 为何要对生产环境的 Node.js 使用反向代理?
|
4月前
|
负载均衡 应用服务中间件 网络安全
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(一)
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(一)
810 0
|
4月前
|
负载均衡 网络协议 应用服务中间件
nginx-http反向代理与负载均衡
nginx-http反向代理与负载均衡
|
5月前
|
XML 前端开发 JavaScript
JavaEE:http请求 | 过滤器 | 同步与异步请求 | 跨域问题 | axios框架 有这一篇就够!
JavaEE:http请求 | 过滤器 | 同步与异步请求 | 跨域问题 | axios框架 有这一篇就够!
|
6月前
|
Java 应用服务中间件 Apache
Apache HTTP配置反向代理入门
Apache HTTP配置反向代理入门
442 0
Apache HTTP配置反向代理入门
|
7月前
|
JavaScript 前端开发
基于 Node.js 环境,使用内置 http 模块,创建 Web 服务程序
基于 Node.js 环境,使用内置 http 模块,创建 Web 服务程序