今天想用koa来测试一下cors的跨域,原本以为只有当设置好了origin,这样就能限制域名访问,但是在本地环境测试后,后台koa还是能接受一切域名端口的请求。
后台koa中间件设置
app.use(cors({
origin: 'http://localhost:8080',
exposeHeaders: ['WWW-Authenticate', 'Server-Authorization'],
maxAge: 5,
credentials: true,
allowMethods: ['GET', 'POST', 'DELETE'],
allowHeaders: ['Content-Type', 'Authorization', 'Accept'],
}))
这里我设置localhost:8080才允许跨域访问,后台运行在3008端口,前端运行在3011端口,前端用axios请求数据
前端请求,端口3011下运行
this.$http.get('http://localhost:3008/test')
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
然而很奇怪,居然可以直接访问
如图:
请问这是什么原因呢
我尝试着回答一下吧,这个问题其实还是非常困扰的。
首先呢,有一种request叫做“simple request”,具体定义可以看MDN:
https://developer.mozilla.org...
在这种情况下,不会触发cors机制。