【发布时间】:2017-06-30 01:21:58
【问题描述】:
我继承了一个无法在 Microsoft Edge 中运行的网站。尝试使用 ajax 发布请求时,我会收到 403 错误,CSRF 令牌不匹配。这很奇怪,因为我在每次加载页面时都会更新它们。查看服务器端的请求数据后,我注意到所有这些会话都在创建。没有从客户端发送任何 cookie,它具有会话 id——具有匹配的 CSRF 令牌。
请求如下所示:
$.ajax({
url: '/main/doThing',
method: 'POST',
xhrFields: { withCredentials: true },
data: {stuff: 3, _csrf: csrf},
});
还有 cookie 设置:
cookie: {
maxAge: 24 * 60 * 60 * 1000,
httpOnly: true,
secure: false,
path: '/',
}
我得出的结论是 Edge 没有向服务器发送会话 cookie。
奇怪的是,这适用于我尝试过的所有其他浏览器(Chrome、Firefox、Safari)。那么这会是浏览器的问题吗?我没有在 Edge 中阻止 cookie。
有没有人遇到过类似的问题?它可以修复吗?或者有什么解决方法?
【问题讨论】:
标签: node.js express sails.js session-cookies microsoft-edge