Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 重定向到新页面时出现状态问题_Jquery_Session_Xmpp_Session State_Strophe - Fatal编程技术网

Jquery 重定向到新页面时出现状态问题

Jquery 重定向到新页面时出现状态问题,jquery,session,xmpp,session-state,strophe,Jquery,Session,Xmpp,Session State,Strophe,我正在使用Strophe连接网页上的XMPP用户,并在用户连接后(成功验证后),在移动到新页面之前发送状态信息 这是我的密码: if (status===Strophe.Status.CONNECTED){ my_namespace.connection.send($pres()); console.log('CONNECTION STATUS: CONNECTED'); $(document).trigger('connected

我正在使用
Strophe
连接网页上的XMPP用户,并在用户连接后(成功验证后),在移动到新页面之前发送状态信息

这是我的密码:

if (status===Strophe.Status.CONNECTED){
        my_namespace.connection.send($pres());
            console.log('CONNECTION STATUS: CONNECTED');
            $(document).trigger('connected');
现在的问题是,一切发生得太快了,一旦我被重定向到新页面并在服务器控制台(Openfire)中检查我的状态,我就会发现自己离线了!为什么不将此状态发送到服务器

我搜索以找到一个解决方案,即将连接附加到新页面,我对javascript相当陌生,我无法理解为什么我的相同连接不适用于新页面

成功连接后,我将使用此代码重定向我的页面

$(document).on('connected', function() {
    my_namespace.set_cookies();
    console.log('Cookies set after sending presence in connected function');
    console.log('Trying to redirect now');
    window.location = 'question_section.html';
    console.log('Redirected');
});
附加(将以前的连接附加到新页面)的代码是:

<script type="text/javascript">
        $(function(){
            $(document).trigger('attach', cookie_data);
            console.log('Attach called from the head of new HTML');
        });
    </script>

$(函数(){
$(document).trigger('attach',cookie\u数据);
log('Attach从新HTML的头部调用');
});
附言:我成功地连接了。我的jid、资源id和会话id也保存在cookie中


任何帮助都将不胜感激。

在连接的处理程序中,发送您的状态信息

conn.send($pres({type: 'available'}).c('priority').t(1).up().tree());
创建用于侦听状态的处理程序

conn.addHandler(onPresence, null, 'presence');
一旦你恢复状态,然后重定向到下一页

var onPresence = function(presence){
    //do redirect
}
您应该启用日志记录并评估状态,您得到的可能不是您的(取决于您如何设置聊天)。另外,请记住在更改页面时增加RID