文章目录
		
		
		
		Access-Control-Allow-Origin只允许一个值不允许多个值,我们会很自然的理解为多个域添加逗号,但是的确不行,该属性的值只允许一个值。
解决方案:
判断当前请求的host,是否在允许列表如果在允许列表,则设置Access-Control-Allow-Origin属性为该请求的host即可。详细代码入下:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 
 | app.all('/api/*', function(req, res, next) {
 
 var allows = ["http://openks.oschina.io", "http://www.zhuyangxing.cn"];
 
 if (process.env.SERVER_SOFTWARE != undefined && process.env.SERVER_SOFTWARE.indexOf("bae") > -1) {
 if (allows.indexOf(req.headers.origin) > -1) {
 res.header("Access-Control-Allow-Origin", req.headers.origin);
 }
 } else {
 res.header("Access-Control-Allow-Origin", "http://10.10.11.222");
 }
 res.header("Access-Control-Allow-Headers", "X-Requested-With");
 res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
 res.header("Content-Type", "application/json;charset=utf-8");
 next();
 });
 
 | 
当然也可以使用npm上已经存在的插件cors 关于 cors更多信息在这里