CORS非简朴哀求设置须知
- 正如上图报错表现,,对付非简朴哀求,赏识器会先发送options预检,预检通事后才会发送真是的哀求;
- 发送options预检哀求将关于接下来的真实哀求的信息给处事器:
- Origin:哀求的源域信息
- Access-Control-Request-Method:接下来的哀求范例,如POST、GET等
- Access-Control-Request-Headers:接下来的哀求中包括的用户显式配置的Header列表
- 处事器端收到哀求之后,会按照附带的信息来判定是否应承该跨域哀求,通过Header返复书息:
- Access-Control-Allow-Origin:应承跨域的Origin列表
- Access-Control-Allow-Methods:应承跨域的要领列表
- Access-Control-Allow-Headers:应承跨域的Header列表,防备漏掉Header,因此提议没有非凡需求的环境下配置为*
- Access-Control-Expose-Headers:应承袒露给JavaScript代码的Header列表
- Access-Control-Max-Age:最大的赏识器预检哀求缓存时刻,单元为s
CORS完备设置
1. koa设置CORS跨域资源共享中间件:
- const cors = (origin) => {
- return async (ctx, next) => {
- ctx.set({
- "Access-Control-Allow-Origin": origin, //应承的源
- })
- // 预检哀求
- if (ctx.request.method == "OPTIONS") {
- ctx.set({
- 'Access-Control-Allow-Methods': 'OPTIONS,HEAD,DELETE,GET,PUT,POST', //支持跨域的要领
- 'Access-Control-Allow-Headers': '*', //应承的头
- 'Access-Control-Max-Age':10000, // 预检哀求缓存时刻
- // 假如处事器配置Access-Control-Allow-Credentials为true,那么就不能再配置Access-Control-Allow-Origin为*,必需用详细的域名
- 'Access-Control-Allow-Credentials':true // 跨域哀求携带身份信息(Credential,譬喻Cookie可能HTTP认证信息)
- });
- ctx.send(null, '预检哀求')
- } else {
- // 真实哀求
- await next()
- }
- }
- }
- export default cors
- 此刻不管是简朴哀求还长短简朴哀求都可以跨域会见啦~
跨域时如那里理赏罚cookie
我们知道http时无状态的,以是在维持用户状态时,我们一样平常会行使cookie;
cookie每次同源哀求城市携带;可是跨域时cookie是不会举办携带发送的;
(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|