LQ博客 www.lqblogs.com
arrows
nav

node koa2-cors 解决跨域问题

作者:lq 来源:原创 发布时间:2019-08-14 浏览量:4834 评论:0 点赞:2

什么是跨域?

由于浏览器同源策略,凡是发送请求url的协议、域名、端口三者之间任意一个与当前页面地址不同即为跨域。


koa2-cors默认同源可以访问(也就是不跨域),非同源需要进行跨域设置,本文分别实现了单个跨域,多个跨域,以及所有跨域的支持。


当然,实际开发中得根据自己项目需求和安全级别定义,来确定跨域开放程度,一般不建议使用支持所有跨域的方式。


参考链接:https://www.npmjs.com/package/koa2-cors

具体实现,参考示例如下:

npm install koa2-cors --save-dev
var koa = require('koa');
var app = new koa();
var router = require('koa-router')();
// CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。
var cors = require('koa2-cors');

app.use(cors({
    origin: function (ctx) {
       // return "*"; // 允许来自所有域名请求
       
       // return ctx.header.origin;// 当*无法使用时,使用这句,同样允许所有跨域
       
       // return 'http://localhost:8080'; //单个跨域请求
       
       // 允许多个跨域
       var allowCors = ['http://localhost:8080',  'http://localhost:8081'];
       
       return allowCors.indexOf(ctx.header.origin) > -1 ? ctx.header.origin : '';
    },
    exposeHeaders: ['WWW-Authenticate', 'Server-Authorization'],
    maxAge: 5,
    credentials: true,
    allowMethods: ['GET', 'POST', 'DELETE'],
    allowHeaders: ['Content-Type', 'Authorization', 'Accept'],
}))
koa2-cors node
如果你感觉本文章对你有帮助的话,那就点赞、打赏或订阅一下吧
点赞(2)
打赏
倒踩(0)
关闭 感谢您的支持,我会继续努力
微信支付
支付宝支付
扫码打赏,建议金额1-20元
浏览量(4834)
讨论本篇文章(0)
发表评论

最多访问文章

最新文章