环境
后端框架: koa2
前端请求框架: axios
解决跨域访问
koa加上如下代码:
app.use(async (ctx, next) => {
ctx.set('Access-Control-Allow-Origin', ctx.headers.origin); // 很奇怪的是,使用 * 会出现一些其他问题
ctx.set('Access-Control-Allow-Headers', 'content-type');
ctx.set('Access-Control-Allow-Methods', 'OPTIONS,GET,HEAD,PUT,POST,DELETE,PATCH')
await next();
});
解决跨域验证cookie失败
问题描述
在发送跨域请求时,浏览器默认不允许其他域发送cookie。
mk
request 的 credentials属性表示是否允许其他域发送cookie
omit: 默认属性,不允许其他域发送cookie
same-origin: 只允许同域发送cookie
include: 总是允许发送cookie
解决
后端加上:
ctx.set('Access-Control-Allow-Credentials', true);
前端加上:
axios
axios({
url: url,
method: method,
data: data,
withCredentials: true // 允许跨域发生cookie
})
jquery
$.ajax({
url: url,
type: type,
data: data,
xhrFields: {
withCredentials: true
},
success: function (data) {
console.log(data)
}
})