我有这个javascript。哪个正确登录我,但是在登录 AJAX 调用的成功回调中执行的 AJAX 调用未执行
$('.js-div-signin form').submit(function(){
$form = $(this);
$isValid = $(this).validate({
rules: {
email:'required email',
password:'required'
}
});
if($isValid.form()) {
$data = {
email:$('.js-input-email',$form).val(),
password:$('.js-input-password',$form).val(),
remember:$('.js-input-remember:checked',$form).val()
};
$('input', $form).attr('disabled','disabled');
$.ajax({
url:'/ajax/login',
data:$data,
type:'post',
dataType:'json',
success:function(res){
if(res.type == 'success') {
/**
* This is the ajax call not working
*/
$.ajax({
url:'/ajax/getheader',
dataType:'html',
success:function($html){
$('#header').html($html);
} error:function(a, b) {
console.log(a);
console.log(b);
}
})
} else {
showError(res.message);
$('.js-input-password',$form).val('');
$('input', $form).removeAttr('disabled');
$('.js-input-password',$form).focus();
}
}, error:function(){
showError('Email or Password incorrect');
$('.js-input-password',$form).val('');
$('input', $form).removeAttr('disabled');
$('.js-input-password',$form).focus();
}
});
}
return false;
});
我在控制台中获取此日志,这意味着第二次 ajax 调用getheader 失败,但错误根本没有提供信息
> Object
Error
有什么想法吗?
我想这个错误可能与饼干或季节有关
由于我处于第一个阶段,未登录,我登录的通过 ajaxPHP 启动会话并创建 cookie 对吗?,但是这个会话或者 cookie 无法访问或不存在于我的当前页面(从那里我登录 ajax 调用)。
所以也许 php 阻止从未登录的页面(没有 cookie 或会话启动)获取登录部分(会话和 cookie 退出)的内容
这有什么意义吗?
提前感谢您的帮助
ajax 错误回调最多可以占用 3 个参数error(jqXHR, textStatus, errorThrown)
记录最后一个将是相互干扰的,因为它将包含错误消息。
不确定你想做什么,但这对我来说看起来像是对链式函数的函数调用:
if($isValid.form()) {...}
但如果它有效,并且你正在拨打 Ajax 电话,我想没关系。
您的第二个 ajax 调用似乎在成功和错误处理程序之间缺少逗号,这可能就是您在控制台中没有获得任何相关内容的原因:
尝试:
$.ajax({
url:'/ajax/getheader',
dataType:'html',
success: function(data){
console.log(data);
$('#header').html(data);
},
error:function() {
console.log('error');
}
});