首页 > 解决方案 > 无法正确读取 cookie

问题描述

我有一个 cookie 栏,它安装了一个名为“CookiePolicy”的 cookie 来存储用户首选项(当然,值 = 1 表示 OK)。

我需要使用此值从我的站点激活/停用 Google Analytics。我以为这很容易......但它真的是一团糟!:(

我的代码

<script runat="server">
protected void Page_Load(object sender, EventArgs e)   {
   HttpCookie cookie = Request.Cookies.Get("CookiePolicy");

   if( cookie.Value != "1" ){ 
      Response.Write("<script>");
      Response.Write("function (i, s, o, g, r, a, m) {");
      Response.Write("i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {");
      Response.Write("(i[r].q = i[r].q || []).push(arguments)");
      Response.Write("}, i[r].l = 1 * new Date(); a = s.createElement(o),");
      Response.Write("m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)");
      Response.Write("})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');");
      Response.Write("ga('create', 'UA-xxxxx-x', 'auto');");
      Response.Write("ga('send', 'pageview');");

  }
} 

</script>

我收到各种错误。怎么了??

其中最糟糕的... System.NullReferenceException:对象引用未设置为对象的实例。 (由 if 子句发出)

标签: asp.net

解决方案


请试试这个:

HttpCookie cookie = Request.Cookies["CookiePolicy"];

用于检查 null

if (cookie == null) {
   Response.Write("Cookie not found.");
}

参考:http ://www.informit.com/articles/article.aspx?p=25045&seqNum=4


推荐阅读