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

目录
相关文章
|
8月前
|
JavaScript 前端开发 API
Node.js中发起HTTP请求的五种方式
以上五种方式,尽管只是冰山一角,但已经足以让编写Node.js HTTP请求的你,在连接世界的舞台上演奏出华丽的乐章。从原生的 `http`到现代的 `fetch`,每种方式都有独特的风格和表现力,让你的代码随着项目的节奏自由地舞动。
762 65
|
9月前
|
JavaScript 前端开发 开发者
Node学习笔记:HTTP模块
总的来说,Node.js的HTTP模块是一个强大的工具,可以帮助你处理HTTP协议的各种需求。无论你是想开设自己的餐厅(创建服务器),还是想去别的餐厅点菜(发出请求),HTTP模块都能满足你的需求。
299 18
|
11月前
|
缓存 JSON 安全
Http自定义Header导致的跨域问题
在Web开发中,正确处理跨域问题是确保应用安全和性能的重要环节。通过在服务器端设置适当的CORS头信息,处理预检请求,并遵循最佳实践,可以有效解决自定义Header导致的跨域问题,提高应用的安全性和用户体验。理解并掌握这些技巧,对于构建高效、可靠的Web应用至关重要。
919 11
|
缓存 负载均衡 应用服务中间件
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇
通过使用Nginx的反向代理功能,可以有效地提高Web应用的性能、安全性和可扩展性。配置过程中需要注意不同场景下的具体需求,如负载均衡、SSL终止和缓存策略等。正确配置和优化Nginx反向代理可以显著提升系统的整体表现。
2034 20
|
缓存 JavaScript 安全
nodejs里面的http模块介绍和使用
综上所述,Node.js的http模块是构建Web服务的基础,其灵活性和强大功能,结合Node.js异步非阻塞的特点,为现代Web应用开发提供了坚实的基础。
431 62
|
缓存 应用服务中间件 API
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(三)
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(三)
403 3
|
缓存 安全 应用服务中间件
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(二)
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(二)
837 1
|
JavaScript 应用服务中间件 测试技术
[译] 为何要对生产环境的 Node.js 使用反向代理?
[译] 为何要对生产环境的 Node.js 使用反向代理?
|
负载均衡 应用服务中间件 网络安全
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(一)
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(一)
3057 0
|
负载均衡 网络协议 应用服务中间件
nginx-http反向代理与负载均衡
nginx-http反向代理与负载均衡
208 0

热门文章

最新文章