我正在使用以下代码让用户使用AJAX登录Magneto。如果输入了正确的用户名和密码,页面将刷新并在标题中显示用户导航栏。该字段适用于Firefox,Safari和IE,但不适用于Chrome。我必须刷新导航栏的页面才能显示。
为什么会出现此问题?
代码:
AjaxLoginForm.submit = function(button){
if (this.validator.validate()) {
// show ajax image
// button.insert({"after":osc_ajax_loading_small});
AjaxLoginForm.hideLoader();
AjaxLoginForm.insertLoader(button);
$("ajaxlogin_form").request({
onSuccess: function(transport) {
var json = transport.responseText.evalJSON();
if(json.is_forgot_pwd){
if(json.success){
$("ajaxlogin_form_message").update("<div>"+json.success_message+"</div>");
$("ajaxlogin_form_message").show();
}
if(json.error){
$("ajaxlogin_form_message").update("<div>"+json.error_message+"</div>");
$("ajaxlogin_form_message").show();
}
}else{
if(json.success){
// If the correct username and password is entered
// the page will refresh and display user navbar
// in the header
window.location.reload();
}
if(json.error){
$("ajaxlogin_form_message").update("<div>"+json.error_message+"</div>");
$("ajaxlogin_form_message").show();
}
}
AjaxLoginForm.hideLoader();
//setTimeout("AjaxLoginForm.hideResponseMessage()", 5000);
}
});
}
}.bind(AjaxLoginForm);
答案 0 :(得分:1)
您可以使用select
进行尝试。此外,您可以简化代码,目前您正在多次写setTimeout
和json.success
,这应该写一次。
json.error
答案 1 :(得分:0)
试试这个,我确定Chrome window.location = self.location;
应该可以正常工作,或者尝试location.reload( true );
,否则回调一些其他功能来重新加载你的页面。
否则你应该得到一些阻止重载的错误,你可以成功获得一个控制台。
答案 2 :(得分:0)
因为脚本位于iframe中,top.location.reload()
对我有用。