浅谈node.js的cors跨域配置实现
Admin 2021-10-15 群英技术资讯 1274 次浏览
这篇文章主要给大家分享的是node.js的cors跨域配置实现的内容,本文有详细的介绍及代码,对大家学习和工作有一定的参考学习价值,因此分享给点家做个参考,需要的朋友可以了解看看。
跨域问题主要在header上下功夫
首先提供一个w3c的header定义 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
再提供一个网友提供的header详解 http://kb.cnblogs.com/page/92320/
这两个有助于帮助大家理解header的类型和作用, 但是遗憾的是跨域相关的两个header属性我都没有找到相关的定义,
下面直接告诉大家 1是Access-Control-Allow-Origin 允许的域 2是Access-Control-Allow-Headers 允许的header类型
第一项可以直接设为* 表示任意 但是第二项不能这样写,在chrome中测试跨域发现报错, 最终的代码看起来是这个样子:
app.all('*', function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With"); res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS"); res.header("X-Powered-By",' 3.2.1') if(req.method=="OPTIONS") res.send(200);/*让options请求快速返回*/ else next(); });
另外有cors模块可以用
CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10。
整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。
因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信。
浏览器将CORS请求分成两类:简单请求(simple request)和非简单请求(not-so-simple request)。
只要同时满足以下两大条件,就属于简单请求。
(1) 请求方法是以下三种方法之一:
(2)HTTP的头信息不超出以下几种字段:
Content-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain
这是为了兼容表单(form),因为历史上表单一直可以发出跨域请求。AJAX 的跨域设计就是,只要表单可以发,AJAX 就可以直接发。
凡是不同时满足上面两个条件,就属于非简单请求。
以上就是关于node.js的cors跨域配置实现的介绍,有需要的朋友可以参考学习,希望大家阅读完这篇文章能有所收获,想要了解更多可以继续浏览群英网络其他相关的文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章给大家分享的是用vue怎样做侧边的抽屉弹窗效果,以下代码比较简单,主要就是实现 侧边弹窗而且不会影响页面操作的方式,文中示例代码介绍的非常详细,感兴趣的朋友接下来一起跟随小编看看吧。
小程序实现日历打卡功能 本文实例为大家分享了小程序实现日历打卡功能的具体代码,供大家参考,具体内容如下 一.效果图展示 老惯例,先上效果图 二.实现思路 1.日历展示 例如下图中: 2021月7月打卡日历页面,共35个日期数据,上月残余4天+本月31天: 2021月6月打卡日历页面,共35个日期数据,上月残余2天+本月30天+下月残余3天: 2021月5月打卡日历页面,共42个日期数据,上月残余6天+本月31天+下月残余5天. [结论]打卡日历页面存在展示35个或42个日期数据的情况,35个或42个日期数据=当前显示月
这篇文章主要介绍了JavaScript的function函数详细,而我们的JavaScript脚本语言比较特殊,相对于C语言,它的参数是不需要数据类型加持的。返回值return,我就不过多描述,他是和 C语言通的,如果没写他就会自动返回undefined,下面一起来看看文章内容,需要的朋友可以参考一下
循环的目的就是为了反复执某段代码,使用循环可以减轻编程压力,避免代码冗余,提高开发效率,方便后期维护。while 循环是 JavaScript 中提供的最简单的循环语句,下面我们来了解一下 while循环和do-while循环的使用。
React中高阶组件HOC怎样用?一些朋友可能对高阶组件HOC的使用不是很了解,因此这篇文章就给大家介绍一下高阶组件HOC,下文有示例代码供大家参考,感兴趣的朋友接下来跟随小编来学习一下吧。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008