zoukankan      html  css  js  c++  java
  • ajax异步跨域请求获取cookie

    我们设置cookie时一般只是设置了cookie的key以及value,有别的需求的时候呢也只是会设置一下过期时间,然而这种设置并不适用于在跨域的情况下。

    在做项目时进行设置cookie如下所示:

      HttpCookie cokie = new HttpCookie("test");
                    cokie.Value =“123”;
                    cokie.Expires = DateTime.Now.AddHours(1);
                    cokie.Domain = "XXXXX";
                    cokie.Path = "/";
                    cokie.HttpOnly = true;
                    Response.Cookies.Add(cokie);

    照着这样设置cookie,然而用js中的document.cookie获取全部的cookie是不能够获取到cookie的值。这样的原因首先是因为你设置了httponly,设置了httponly是无法通过js获取到cookie的值,就算注释了不管是js还是用HttpContext.Current.Request.Cookies[“test”]来获取都不能够获取到cookie的值,原因在于通过js跨域请求获取cookie还需要如下操作:

        $.ajax({
            url: xxx,
            type: "post",
            data: { id: id, catid: catid, source: "pc" },
           xhrFields: {
                withCredentials: true
            },
            success: function (result) {
                var all = JSON.parse(result);
            
    
            }
        })

    最关键的是请求的时候要加上:

     xhrFields: { withCredentials: true }
    

     然后服务端要进行设置:

    HttpContext.Response.AddHeader("Access-Control-Allow-Credentials", "true");
    HttpContext.Response.AddHeader("Access-Control-Allow-Origin", "http://xxxx");

     这样你就可以获取到相应的cookie值,需要注意的是设置domain在接收cookie的那个域名下以及HttpContext.Response.AddHeader("Access-Control-Allow-Origin", "http://xxxx");要加指定的域名,不能用*

  • 相关阅读:
    Flask--配置文件
    Flask--路由系统
    Flask--视图
    Flask--蓝图
    Flask--静态资源
    Flask--登录验证(多个装饰器)
    Flask--session
    CSS中的定位机制
    四、DDL常见操作汇总
    三、管理员必备技能
  • 原文地址:https://www.cnblogs.com/97310ZT/p/9916276.html
Copyright © 2011-2022 走看看