zoukankan      html  css  js  c++  java
  • .NET获取不到js写的cookie解决方法

    今晚使用javascript设置一个来路的cookie,之后使用ASP.NET获取这个cookie值,发现ASP.NET获取不到JS设置的cookie值,真郁闷中,以下是JS写Cookie的代码:
      
      Code
      
      //写cookies
      
      functionsetCookie(name,value)
      
      {
      
      document.cookie=name"="escape(value)";";//设置的cookie关闭浏览即失效
      
      }
      
      //JS设置来路写入到cookie
      
      setCookie("fromUrl",document.referrer);
      
      以下是ASP.NET读取cookie代码:
      
      Code
      
      ///<summary>
      
      ///读取Cookies
      
      ///</summary>
      
      ///<paramname="str"></param>
      
      ///<returns></returns>
      
      publicstringGetCookies(stringkey)
      
      {
      
      if(System.Web.HttpContext.Current.Request.Cookies[key]!=null)
      
      {
      
      string_cstr=System.Web.HttpContext.Current.Request.Cookies[key].Value.ToString();
      
      Encodingstre=Encoding.GetEncoding("UTF-8");
      
      returnSystem.Web.HttpUtility.UrlDecode(_cstr,stre);
      
      }
      
      else
      
      {
      
      returnstring.Empty;
      
      }
      
      }
      
      //获取cookie
      
      stringreferer=GetCookies("fromUrl");
      
      在这里ASP.NET使用UTF-8编码来解码JS写cookie的值,要不然取到的cookie会有些不同。
      
      就是以下代码出现ASP.NET居然获取不到js写的cookie,那怎么办呢?别急,下面是解决方法:
      
      重新改一下js代码,如下:
      
      Code[
      
      //写cookies
      
      functionsetCookie(name,value)
      
      {
      
      document.cookie=name"="escape(value)";path=/";//设置的cookie关闭浏览即失效
      
      }
      
      加多了一个path=/,就行了。就这么简单。
      
      这里设置了Cookie的Path属性,必须在客户端和服务器端同时设置Path="/"属性,才能js和ASP.NET对Cookie的操作才能相互作用!另外一个是编码的问题,这里JS中的编码为encodeURI对应ASP.NET的Server.URLEncode。

  • 相关阅读:
    P1410 子序列
    P1395 会议 (树形dp)
    P2580 于是他错误的点名开始了
    LC1127. 用户购买平台
    LC 1308. Running Total for Different Genders
    P1340 兽径管理 (最小生成树)
    P1330 封锁阳光大学 (二分图染色)
    CF1296F Berland Beauty (Tree, dfs/bfs, LCA)
    顺丰的Cookie条款
    服务器判断客户端的用户名和密码(token的身份验证)
  • 原文地址:https://www.cnblogs.com/soundcode/p/3860023.html
Copyright © 2011-2022 走看看