2011年10月17日

cakephp jquery mobile と愉快なエラーたち

お願いします♪いいねとかつぶやいたりして下さい
 
cakephp で jquery mobileのページ遷移をやっていると

Error loading page と吐き出す場合がある。

jquery mobile の ajaxを切れば問題ないのだがそれだと味気ないので。

で、原因を探ってみた

1 AuthComponent内の 420行目あたり
$controller->redirect(null, 403);

を

if($controller->theme == 's'){//スマートフォンの場合のテーマを指定
    $controller->redirect('/'.$this->loginAction['controller'].'/'.$this->loginAction['action'].'/');
} else {
    $controller->redirect(null, 403);
}



と変更する。

2 app_controller.php の beforeFilter redirect を 最後にスラッシュを吐き出す形に変更

//URLの最後を必ずスラッシュで終わらせる
if (isset($this->params['url']['url'])) {
    $uri = $this->params['url']['url'];
    $flag_rss = strpos($uri,'.rss');
    if (substr($uri, -1) != '/' && $flag_rss == false ) {
        
        if($this->theme != 's'){
            $this->redirect(FULL_BASE_URL.DS.$uri.DS, 301);
        } else {
            $this->redirect(DS.$uri.DS);	
        }
        exit;
    }
}


エラーの理由



・redirect をする場合に絶対パスや外部サイトだとダメ。
・正常以外のステータスコード 403 などを吐き出すとダメ。

みたい。

にしても最近全然 cakephp 系の話題が無いな。
みんな何の仕事してんだろ。
関連するタグ: PHP cakephp
あなたにとって有用な記事でしたか?是非ブックマークしておくことをおすすめします。
 




ライブラリを配布しちゃったり
webデザイン
Fireworks
HTMLコーディング
CSS
Dreamweaver
携帯サイト
webプログラム
PHP
正規表現
cakephp
MYSQL
javascript
webマーケティング
adwords
analytics
windows7
ショートカットキー
おすすめ情報
サイト
facebook
ライブラリ
配布
アプリ
iphone
ipad
サーバー
さくらサーバー
全ての記事を読む




トップ - 最新の記事一覧 - お問い合わせ