我有一个功能正常的网站,其中包含一个搜索功能,可以通过jQuery $ .ajax调用将结果加载到<div>
元素中,如下所示:
$.ajax({
url: '{{ path('order_search') }}',
type: $(this).attr('method'),
data: $('#search_form').serialize(),
success: function (data) {
$('#js-search-results').html(data);
}
});
我正在symfony项目中的twig模板中工作,因此是url表示法。这很完美。
这是在需要登录的网站上。我在symfony中有一个事件监听器,它检查每个内核请求的一段时间是否不活动(取自here),如果非活动期超过maxIdleTime,则用户被重定向到登录页面。
我的问题是,如果用户在一段时间内处于非活动状态然后进入搜索,则js-search-results
div将填充登录页面。我想要发生的是让整个窗口重定向到登录页面。看似简单,但我还没弄明白该怎么做。
我想要处理的是我的登录页面脚本检查它是否被加载到完整窗口(而不仅仅是div元素),如果没有,则刷新整个窗口。怎么做?
答案 0 :(得分:1)
听起来你想知道那里有什么类型的数据,如果是登录页面则进行重定向。
查明data
是否包含登录页面中的元素。如果是window.location.href = "/login"
,如果不在div中显示搜索结果。从{page : "login"}
答案 1 :(得分:1)
您可以查看变量&#34; 数据&#34;内的内容。检查它是否包含登录页面中的元素,然后使用if else语句。
if(data.includes("username") && data.includes("password")){
window.location.assign("https://your.login.page.html");
}else{
$('#js-search-results').html(data);
}