zoukankan      html  css  js  c++  java
  • 谷歌浏览器新版本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 + ")";
            }
  • 相关阅读:
    SpringMVC—对Ajax的处理(含 JSON 类型)(2)
    md5加密(1)
    js生成邀请码(2)
    SpringMVC---依赖注入与面向切面
    初识json
    java集合类(2)
    springmvc与struts2的区别
    模拟14
    NOIP模拟13
    NOIP模拟12
  • 原文地址:https://www.cnblogs.com/fei686868/p/15692359.html
Copyright © 2011-2022 走看看