在用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服务,请求正常,可以获得想要的数据。