谷歌浏览器新版本Chrome 80以上版本默认SameSite导致jquery ajax跨域登录状态失效的问题

文章参考:https://davidchen93.blog.csdn.net/article/details/104844667?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.essearch_pc_relevant&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.essearch_pc_relevant

解决的办法:

在提供授权登录的方法中,设置响应头信息;

 Response.Headers.Add("Set-Cookie", $"uid={str}; SameSite=None; Secure=True;Path=/");

其中 uid为要共享的cookie名称,str为cookie的值。 同时设置SameSite属性为None;必须设置 Secure=True.

同时,提供授权的应用必须采用 https。  http无效。

完整方法示例:

  public string Get(string callback)
        {
            Response.ContentType = "application/json";
            Request.Cookies.TryGetValue("uid", out string str);
            var query = Newtonsoft.Json.JsonConvert.SerializeObject(new { code = str });

            Response.Headers.Add("Set-Cookie", $"uid={str}; SameSite=None; Secure=True;Path=/");
          

            return callback + "(" + query + ")";
        }
原文地址:https://www.cnblogs.com/fei686868/p/15692359.html