Nginx与NodeJS实现简单的代理跨域(proxy_pass)

分类:服务器| 发布:佚名| 查看: | 发表时间:2014/11/3

在用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.camnpr.com下,想使用 www.otherdomain.com的某些功能。即想在原页面中使用www.otherdomain.com/query的功能。

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

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

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

       在nginx.conf中配置:

             location /query {
                  proxy_pass http://www.otherdomain.com/query;
             }

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

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

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

相关阅读

跨域名访问资源的问题 HTML5 Canvas getImageData img

365据说看到好文章不转的人,服务器容易宕机
原创文章如转载,请注明:转载自郑州网建-前端开发 http://camnpr.com/
本文链接:http://camnpr.com/server/1712.html