我继承了一个在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。
有没有人遇到过类似的问题?它可以修复吗?或者有解决方法吗?
答案 0 :(得分:0)
不确定您是否找到了解决方法。我遇到了类似的问题,但他们似乎只是从Edge 15开始。
如果您找到了解决方案,则更新会有所帮助。感谢。
答案 1 :(得分:0)
手动进行Windows 10更新可以为我解决此问题。以前,我的Edge是42,版权2018。现在是44,版权2019。会话cookie现在按预期发送。