doubleyong
管理员
管理员
  • 最后登录2026-05-25
  • 发帖数1198
  • 最爱沙发
  • 喜欢达人
  • 原创写手
  • 社区居民
  • 忠实会员
阅读:9927回复:0

[nodejs]nodejs 中使用cors 解决跨域问题

楼主#
更多 发布于:2018-04-18 16:50
什么是CORS

CORS(Cross-origin resource sharing),跨域资源共享,是一份浏览器技术的规范,用来避开浏览器的同源策略
简单来说就是解决跨域问题的除了jsonp外的另一种方法
CORS的wiki

如何使用CORS

只要服务端在响应时发送一个响应的标头即可
浏览器端还是照常使用ajax,支持get,post

在Node.js上启用CORS


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

app.all('*', function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
    res.header("X-Powered-By",' 3.2.1')
    res.header("Content-Type", "application/json;charset=utf-8");
    next();
});
只要将上面的代码;放在处理路由之前就行
注意:Access-Control-Allow-Origin,后面如果是 * 就代表所有域名都可以跨域访问到服务器,也可以指定具体的域名,如:
res.header('Access-Control-Allow-Origin', 'http://example.com');
域名一定要小写,不然浏览器这边会报错不允许跨域然后要指定协议名称,http或https等

参考:https://blog.csdn.net/azureternite/article/details/52349219
知识需要管理,知识需要分享
游客


返回顶部

公众号

公众号