2011-12-14 15 views
0

Android Honeycomb 3.2.1を実行しており、ブラウザでCookieの受け入れを停止するのに問題があります。私はクッキーをオフにしている場合今AndroidブラウザがCookieを尊重しない

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:

<!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私は、次のコードを持っています私のデスクトップブラウザのいずれかでfirst.htmlにアクセスすると、リダイレクトされ、期待どおりのnullと表示されるアラートが表示されます。

私がクッキーをオンにして、デスクトップブラウザのいずれかでfirst.htmlにアクセスすると、私はリダイレクトされ、「テストクッキー」と表示されます。

これをAndroidタブレットで実行して、Cookieを無効にすると、常に警告の「テストCookie」が返されます。クッキーの有無は問われません。私は設定を変更しようとしました、クッキーとキャッシュを削除し、ブラウザを再起動し、タブレットを再起動して、すべて同じ結果を返しました。

何か助けていただければ幸いです。

答えて

0

私は同じ問題を抱えています。クッキーが設定されていないと、サーバー上のCookieをチェックしてHTTPエラーコードを返してしまいます。

0

サーバーサイドコードで確認できます。たとえば、JSPを使用していた場合などです。あなたはあなたのonLoadまたは$(document).ready(){}の中でこれを行うことができます:

<% 
      String cookieAllowed = "false"; 
      Cookie cookie = new Cookie ("username","value"); 
      cookie.setMaxAge(365 * 24 * 60 * 60); 
      response.addCookie(cookie); 

      String cookieName = "username"; 
      Cookie cookies [] = request.getCookies(); 
      Cookie myCookie = null; 
      if (cookies != null) 
      { 
       //If true then cookies are not null 
       cookieAllowed = "true"; 
      } 
      %> 

      if(! <%=cookieAllowed%>) 
      { 
       window.location = "/static/nocookies.html"; 
      } 
%> 

他のサーバ側のスクリプトも動作するはずです。

関連する問題