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。

  • 相关阅读:
    修改VS中的附加依赖项的继承值
    cocos2dx的addChild接口设计
    svn cleanup失败解决方法
    vi显示中文乱码
    CentOS 7.4 shell 不显示当前用户和路径的问题
    生产工具的差距导致的生产力(生产效率)的差距
    GPU的历史:从固定管线到可编程管线再到通用计算平台
    聊Java中的任务调度的实现方法及比较
    Spring Boot 揭秘与实战之RabbitMQ
    一个让Java事半功倍的反射库
  • 原文地址:https://www.cnblogs.com/soundcode/p/3860023.html
Copyright © 2011-2022 走看看