Chrome 浏览器中如何解决jQuery ajax withCredentials:true 失效问题?

chrome 浏览器中如何解决jquery ajax withcredentials:true 失效问题?

如何在 chrome 中解决 jquery ajax withcredentials:true 失效问题

在跨域请求中使用 jquery ajax 时,withcredentials:true 选项通常能够发送 cookie 凭据。然而,一些用户报告称此选项在 chrome 中无效。

这个问题的原因在于 chrome 中实施了称为 samesite 的新 cookie 策略。samesite=strict 标记的 cookie 不会在跨域请求中发送,即使设置了 xhr.withcredentials = true。

解决方案

要解决此问题,必须在需要发送 cookie 的特定 cookie 上禁用 samesite 策略。对于 asp.net core 2.0 身份验证 cookie,可以通过在 startup.cs 文件中添加以下代码来实现:

services.AddAuthentication(...)
    .AddCookie(option => option.Cookie.SameSite = SameSiteMode.None)
    .AddOpenIdConnect(...)

这样 chrome 浏览器就不会阻止 cookie 的发送,withcredentials:true 选项将正常工作。

以上就是Chrome 浏览器中如何解决jQuery ajax withCredentials:true 失效问题?的详细内容,更多请关注其它相关文章!