Node.js实现CORS跨域资源共享

原创 2016年08月29日 00:22:55

什么是CORS

CORS(Cross-origin resource sharing),跨域资源共享,是一份浏览器技术的规范,用来避开浏览器的同源策略

简单来说就是解决跨域问题的除了jsonp外的另一种方法

CORS的wiki

如何使用CORS

只要服务端在响应时发送一个响应的标头即可

浏览器端还是照常使用ajax,支持get,post

在Node.js上启用CORS

参照StackOverflow上面的一个回答,定义一个中间件来添加响应标头,然后在处理app.get(或post等)之前使用
(这位老兄告诉我们要善用next啊)

//CORS middleware
var allowCrossDomain = function(req, res, next) {
    res.header('Access-Control-Allow-Origin', 'http://example.com');
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
    res.header('Access-Control-Allow-Headers', 'Content-Type');

    next();
}

//...
app.configure(function() {
    app.use(express.bodyParser());
    app.use(express.cookieParser());
    app.use(express.session({ secret: 'cool beans' }));
    app.use(express.methodOverride());
    app.use(allowCrossDomain);
    app.use(app.router);
    app.use(express.static(__dirname + '/public'));
});

只要把app.use(allowCrossDomain);放在处理路由之前就行

注意:Access-Control-Allow-Origin,后面如果是 * 就代表所有域名都可以跨域访问到服务器,也可以指定具体的域名,域名一定要小写,不然浏览器这边会报错不允许跨域
然后要指定协议名称,http或https等

参考

版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。转载请注明来源http://blog.csdn.net/azureternite

浅谈前端性能优化(四)——将script放在底部

CSS文件放置在head中和放在body底部,对CSS本身的下载时间不会有影响,但对页面的呈现有非常大的影响,与用户体验密切相关。   script的两个属性——async和defer: ① 没有de...

浅谈前端性能优化(六)——CDN内容分发网络

有关CDN的介绍请见:http://blog.csdn.net/zhouziyu2011/article/details/60962103   1、CDN CDN是一组分布在多个不同地理位置的W...

JS 跨域资源共享 -- Ajax CORS / img ping / jsonp

JS 跨域资源共享 -- Ajax CORS / img ping / jsonp
  • ALISURE
  • ALISURE
  • 2015年09月22日 12:46
  • 360

跨域资源共享 CORS 实现思路

CORS 定义 Cross-Origin Resource Sharing(CORS)跨来源资源共享是一份浏览器技术的规范,提供了 Web 服务从不同域传来沙盒脚本的方法,以避开浏览器的同源策略...

java服务端解决js跨域的问题 CORS(跨域资源共享) 的配置

nginx兼容跨域上传 兼容情况:各种新版本的ie10,firefox,opera,safari,chrome以及移动版safari和Android浏览器 ie9及一下版本请使用flash方式来兼容通...

跨域资源共享CORS协议介绍

  • 2016年03月07日 16:16
  • 131KB
  • 下载

跨域问题 XHR实现跨域资源共享(CORS)

前言:以前遇到跨域的问题总有点不知所措,最近看的大神用3行代码就解决了ajax请求的跨域问题,大呼神奇,所以自己学习了一下,特此总结。感谢参考文章的支持。一、简介对于跨域请求目前常用的有三种方式,代理...

利用跨域资源共享(CORS)实现ajax跨域调用

利用跨域资源共享(CORS)实现ajax跨域调用

akka-http使用CORS(跨域资源共享)实现跨域请求

我们平时在开发过程中经常用到前后端分离,当前端喝后台分别部署的时候则会存在跨域问题(协议,ip,端口中任一个不同),常用的方法有使用jsonp跨域(只支持get请求),或者使用nginx反向代理等。这...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Node.js实现CORS跨域资源共享
举报原因:
原因补充:

(最多只允许输入30个字)