куки, установленные в .Net для чтения на стороне клиента в Firefox, но не в IE или Safari - PullRequest
1 голос
/ 09 апреля 2011

Следующие настройки .Net устанавливают cookie

                HttpCookie c = new HttpCookie("tw"); 
                c.Expires = DateTime.Now.AddDays(100);
                c.Path = "/"; 
                c.Secure = false;  
                c.HttpOnly = false;

Следующий javascript читает файлы cookie

    function getCookie(c_name)
    {
    var i,x,y,ARRcookies=document.cookie.split(";");
    for (i=0;i<ARRcookies.length;i++)
    {
      x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
      y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
      x=x.replace(/^\s+|\s+$/g,"");
      if (x==c_name)
        {
        return unescape(y);
        }
      } 
}

Никаких дополнительных заголовков в запросе не отправляется. Это работает в Firefox, но не в IE или Safari

1 Ответ

1 голос
/ 09 апреля 2011

Здесь происходит то, что вы не устанавливаете значение для вашего куки.В IE бесценный файл cookie не содержит '='.Это означает, что в вашем коде x - это «», а y - «tw».Затем в предложении if сравнение имен всегда заканчивается неудачей, поскольку x - пустая строка.В результате функция возвращает неопределенное значение.Перепишите свою логику таким образом, чтобы обрабатывать отсутствие '=' в бесценном куки в IE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...