So-net無料ブログ作成

JavascriptでcakeCookieを読む [cakePHP]

cakePHPのソースの中で、

$this->Cookie->write('name',serialize($this->data),false,time()+259200);


みたいに書いてクッキーを保存したとします。
※ソースの詳細は省略します。

そちらのCookie情報をJavascriptで読み取るには、

function getCookie(name) {
    var ck = document.cookie.split(';');
    
    for (var i=0; i < ck.length; i++) {
        var res = ck[i].split('=');
        if ( res[0] == name ) { return decodeURIComponent(res[1]); }
    }
}


こんな感じのFunctionを作って、それを

var ck = getCookie('CakeCookie[name]');


で読み出せばOKだと思ったんだが、上手く行かない。


なんだろ?と思って、CookieをConsoleに書き出してみて、「もしや?」と気づく。

そうなんです。
「 name」
という感じで、nameの前に半角スペースが入ってるんですね。

なので、最初のコードでresをsplitして配列にしたすぐ後で、

res[0] = res[0].replace(/^\s+|\s+$/g, "");


とやって、両端に半角スペースがあったら取っ払う。
phpみたいにtrimが無いので正規表現使ってreplaseする訳ですね。


これで、取得できました。

Cookieはほんとに単なる文字列なんだなぁ。と改めて実感。
さて、もう一息がんばろ。


※cakePHPはvar1.3
nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。