处理跨域
zKing 2018-11-28 Koa
关于跨域,得使用中间件 koa2-cors
,献上文档
代码如下,这样就可以只允许 www.test.com
这个域名来请求服务器的数据了。
cnpm install koa2-cors -D
const Koa = require("koa");
const cors = require("koa2-cors");
const corsConfig = {
origin: function(ctx) {
if (ctx.url === '/test') {
return false;
// return "*"; // 允许来自所有域名请求
}
return 'www.test.com';
},
exposeHeaders: ['WWW-Authenticate', 'Server-Authorization'],
maxAge: 5,
credentials: true,
allowMethods: ['GET', 'POST', 'DELETE'],
allowHeaders: ['Content-Type', 'Authorization', 'Accept'],
}
app.use(cors(corsConfig));
app.listen(3000, () => {
console.log("http://localhost:3000");
});
在自己本地测试的时候,将 'www.test.com
改成 http://localhost
,
然后写一个 test.html 如下,最后将文件放在本地 Apache 服务器上直接打开可进行测试
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script>
axios.get('http://localhost:3000/getApi').then((repsponse) => {
document.write(JSON.stringify(repsponse.data));
});
</script>