CNode

koa2 cors 跨域处理中怎样处理 preflight 问题?

问答
Yyoungluo发布于8 年前最后回复8 年前5 回复5661 浏览0 收藏

if (ctx.request.method === 'OPTIONS') { ctx.status = 200; } else { ctx.throw(401); }

通过放行 options 请求的话,前端请求后会同时触发 resolve 和 reject

查看回复

回复 (5)

Y
yilikun#1·8 年前

这个问题可以从前后端两方面解决,前端的话:使用webpack代理等,后端:nginx代理,或者使用npm包(推荐koa2-cors)

F
fuxingZhang#2·8 年前

预检请求前端不需要处理,也不需要知道,浏览器底层机制

K
koa666#4·8 年前

koa2-cors 模块应该可以的。

https://github.com/koa666/koa2-cors

W
wangchaoduo#5·8 年前

没有试过,毛猜猜,如果你把OPTIONS拦下来了,那后面的请求应该就不会发了吧

参与回复
登录后即可参与回复。登录