Nginx与nodejs代理跨域

本文介绍了在Node.js应用中遇到跨域问题时,如何利用Nginx作为代理来解决。通过在Nginx配置文件中设置代理规则,将请求从www.mydomain.com/query转发到www.otherdomain.com/query,从而实现跨域访问。同时,在Node.js的JS文件中,修改XHR请求的URL为www.mydomain.com/query,确保请求能够正确发送并获取数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近学习nodejs,有个地方需要用到跨域,使用

   app.use(function(req, res, next){

         res.header('Access-Control-Allow-Origin', '*');

         res.header('Access-Control-Allow-Headers','X-Request-With');

         next();

   });

无效。估计是本人对node理解不足,如果有童鞋对这方面比较熟悉,请指教。

因为node采用了nginx作为代理,所以我想使用nginx来作下跨域解决方案。

具体使用如下: 

       网页现处于域名: www.mydomain.com下,想使用 www.otherdomain.com的某些功能。即想在原页面中使用www.otherdomain.com/query的功能。

       拟定使用XHR查询 www.otherdomain.com/query?a=xxx&b=xxx

       但这样就造成了跨域的问题。因而,可以使用nginx代理来将其变为本域名查询。

       解决方案: 使用XHR来请求www.mydomain.com/query?a=xxx&b=xxx,然后使用nginx将www.mydomain.com/query代理到www.otherdomain.com/query

       在nginx.conf中配置:

             location /query {

                  proxy_pass http://www.otherdomain.com/query;

             }

      在nodejs中的JS文件里XHR使用url为:

            url = 'http://www.mydomain.com/query?' + 'a=xxx' + '&b=xxx';

     然后分别重新启动nginx和node服务,请求正常,可以获得想要的数据。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值