我在Apache / 2.4.7(Ubuntu)服务器上运行的网站没有任何错误,我在其上安装了一个使用CodeIgniter 2.1.4和Bootstrap的PHP脚本。
在页面顶部,登录框用作模式弹出窗口,但当有人尝试登录时,脚本会重新加载页面,但不会显示登录的用户名。只有在手动刷新页面后才能用户看到他们的名字。
我一直在尝试搜索一个多月的解决方案,包括重新安装服务器和脚本,更改.htaccess
文件,停止memcached等。
我联系了脚本的所有者和CodeIgniter的支持,他们告诉我这可能是一个过载的Ajax问题。
由于我的脚本主要是Ajax并且除了登录之外它工作正常,是否可以以不同的方式进行登录?我怎样才能正确整合脚本?
这是我的登录功能(assets/js/custom.js
):
function login() {
var email = $('#loginForm [name="email"]').val();
var pwd1 = $('#loginForm [name="password1"]').val();
if (isEmpty(pwd1) || isEmpty(email)) {
alert(msg_required_fields);
return false;
}
$.post(base_url + 'main/login', { "email": email, "pwd1": pwd1 }, function(data, textStatus, xhr) {
if (data.error == 1) {
alert(data.msg);
}
if (data.error == 0) {
document.location = base_url + 'main/reload';
}
}, "json");
}
更新
我对退出功能也有同样的问题:
function logout()
{
$this->admin->deleteTable('online',array('iduser' => $this->session->userdata('id')));
$this->session->unset_userdata('id');
$this->session->sess_destroy();
if( $this->session->userdata('facebook') == '1')
redirect(base_url(),"main/facebook/logout");
else
redirect(base_url()."main/reload","refresh");
}
答案 0 :(得分:1)
逻辑上document.location对象应该是只读的(因为你无法更改文档的URL;更改URL会加载新文档),所以为了安全起见,你应该使用window.location .href是否要设置URL。
所以你应该尝试使用window.location.href What is the difference between document.location.href and document.location?