Cookieを設定および取得するための次の関数があります。ローカルホストでコードをテストしましたが、機能しているようですが、サーバーに配置しても機能しません。ブラウザでCookieを確認できますが、を使用してCookieを読み取ろうとするとfunction getCookies()
、機能しません。
質問:
- クッキーを間違って設定していますか?
- なぜ実際的にではなくブラウザでCookieを表示できるのですか?
- クッキーを間違って読んでいますか?
コード:
<script type="text/javascript"><!--
function getCookie(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
alert(ARRcookies);
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);
}
}
}
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 readCookie(){
alert("here");
var domain = checkCookie("domain");
var tld= checkCookie("tld");
alert(domain+" "+tld);
}
window.onload(readCookie());
// --></script>
更新: readCookie関数内のアラートは、値であるはずの「未定義」を示しています。ARRcookiesを印刷しようとすると、設定した「domain」と「tld」を除くすべてのcookieが表示されます。ブラウザのCookieリストにCookieの「ドメイン」と「tld」が表示されます。