使js会话无法使用Microsoft Edge

时间:2017-02-11 20:06:13

标签: node.js express sails.js session-cookies microsoft-edge

我继承了一个在Microsoft Edge中无效的网站。当尝试使用ajax post请求时,我会收到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。

有没有人遇到过类似的问题?它可以修复吗?或者有解决方法吗?

2 个答案:

答案 0 :(得分:0)

不确定您是否找到了解决方法。我遇到了类似的问题,但他们似乎只是从Edge 15开始。

如果您找到了解决方案,则更新会有所帮助。感谢。

答案 1 :(得分:0)

手动进行Windows 10更新可以为我解决此问题。以前,我的Edge是42,版权2018。现在是44,版权2019。会话cookie现在按预期发送。