在我的一个页面中,我有一个由pjax处理的链接。基本上用户点击一个项目,该项目变为"已检查" (并保存在数据库中)。
我已经为这些请求禁用了pushState,因为它没有意义,用户有效地停留在同一页面中,因此更改网址是违反直觉的。
但是,有一种情况是此pjax请求导致重定向到登录页面(当用户未登录时)。这就是我真的需要pushState才能工作的时候,它并不是因为我首先禁用了它。
是否可以配置pjax,使普通响应在没有pushState的情况下工作,但重定向响应(使用X-Pjax-Url
标头完成)执行执行pushState?
答案 0 :(得分:2)
使用当前功能无法做到这一点。我已经为pjax添加了两个选项,我的PR已经被pjax的yii2分支接受了。所以,不用多说:
https://github.com/yiisoft/jquery-pjax
//pushRedirect - Whether to pushState the URL for redirects. Defaults to false.
//replaceRedirect - Whether to replaceState the URL for redirects. Defaults to true.
// ...
jQuery(document).pjax("#example_selector", {
"push": false,
"replace": false,
"pushRedirect": true,
"replaceRedirect": false
});
答案 1 :(得分:0)
使用linkSelector指定哪些链接触发pjax调用
<input type="hidden" value="<?=$email?>" />