June 10, 2013

jquery-pjaxでリダイレクト

以前書いたタイトルの変更方法を改良して、リダイレクト処理を付け足してみます。

jquery-pjax後にHTMLのタイトルを変更する
http://madroom-project.blogspot.jp/2013/05/pjaxhtml.html

以下のように、'pjax:complete'イベント時に'x-pjax-redirect'を確認します。
$(document).on('pjax:complete', function(event, xhr) {
    if (xhr.getResponseHeader('x-pjax-redirect')) {
        $.pjax({url: xhr.getResponseHeader('x-pjax-redirect'), container: '#pjax'});
    } else if (xhr.getResponseHeader('x-pjax-title')) {
        $('title').text(xhr.getResponseHeader('x-pjax-title'));
    }
});
'x-pjax-redirect'は、PHPだったら
header('x-pjax-redirect: http://example.com');
exit(' ');
で出力します。exit()だとcontentのlengthが0になりますが、その場合、どうも失敗とみなされるようで、通常遷移してしまいました。なので、上記の形にしています。尚、'x-pjax-title'はリダイレクト先で出力される想定です。

No comments:

Post a Comment