2011-12-14 3 views
6

Я запускаю Android Honeycomb 3.2.1, и у меня возникли проблемы с тем, чтобы браузер переставал принимать файлы cookie. У меня есть следующий код:Отключение cookies в Android-браузере не работает

first.html:

<!DOCTYPE html> 
<html> 
    <head> 
     <title></title> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <script type="text/javascript" src="cookie.js"></script> 
     <script type="text/javascript"> 
      setCookie('testing','test cookie',365); 
      window.location.href = 'second.html'; 
     </script> 
    </head> 
    <body> 
    </body> 
</html> 

second.html:

<!DOCTYPE html> 
<html> 
    <head> 
     <title></title> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <script type="text/javascript" src="cookie.js"></script> 
     <script type="text/javascript"> 
      var temp = getCookie('testing'); 
      alert(temp); 
     </script> 

    </head> 
    <body> 
    </body> 
</html> 

cookie.js:

function setCookie(c_name,value,exdays) 
{ 
    var exdate=new Date(); 
    exdate.setDate(exdate.getDate() + exdays); 
    var c_value=escape(value) + ((exdays==null) ? "" : ";  expires="+exdate.toUTCString()); 
    document.cookie=c_name + "=" + c_value; 
} 

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); 
     } 
    } 
    return null; 
} 

Теперь, если я отключить куки и посетите first.html в любом из моих настольных браузеров, я перенаправляюсь и получаю предупреждение, которое говорит null как ожидалось.

Если я включу свои файлы cookie и запустил first.html в любом из моих настольных браузеров, я получаю перенаправление и получаю предупреждение, в котором говорится «тестовый файл cookie», как и ожидалось.

Теперь, если я запустил это на своем Android-планшете с отключенными cookie, он всегда возвращает «тестовый файл cookie» в предупреждении. Неважно, есть ли у меня файлы cookie. Я попытался изменить настройки, удалить куки и кеш, перезапустить браузер и даже перезапустить планшет и все с теми же результатами.

Любая помощь приветствуется.

+1

Я также видим ту же проблему в 4.0.3. –

ответ

0

Как насчет проверки, если куки включены, прежде чем вернуться печенье:

function getCookie(c_name) 
{ 
    if(navigator.cookieEnabled) { 
     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); 
      } 
     } 
    } 
    return null; 
} 
Смежные вопросы