Jquery 未在成功函数中调用警报
我正在使用ajaxfileupload.js,表单正在提交,它进入了错误处理函数,但它data.msg似乎未定义Jquery 未在成功函数中调用警报,jquery,ajax,file-upload,Jquery,Ajax,File Upload,我正在使用ajaxfileupload.js,表单正在提交,它进入了错误处理函数,但它data.msg似乎未定义 $('#form').submit(function(e){ e.preventDefault(); $.ajaxFileUpload({ url : './upload_file/', secureuri : false, type : 'post', fileElementI
$('#form').submit(function(e){
e.preventDefault();
$.ajaxFileUpload({
url : './upload_file/',
secureuri : false,
type : 'post',
fileElementId : 'userfile',
dataType : 'json',
data : {
'title' : $('#title').val(),
'publication' : $('#publication').val(),
'description' : $('#description').val()
},
success : function(data, status){
alert('test');
if(data.status != 'error'){
$('#files').html('<p>Reloading files...</p>');
refresh_files();
},
error : function(data, status){
$('#alerts').html(data.msg);
}
}
});
return false;
});
在ajax调用中实现一个“错误”处理程序,否则您永远不会知道服务是否成功运行响应的HTTP代码是200吗?如果没有,它将被发送到
错误处理程序(您没有)而不是成功处理程序。实际上,添加一个错误处理程序
并确认它按预期工作。一个回应并不意味着它是一个成功的回应。(我对ajaxFileUpload不太熟悉,但可能你有一个JSON解析错误,导致插件出错)。如前所述,你应该添加一个complete
和error
处理程序来查看到底发生了什么。如果出现错误,success
处理程序将不会处理它。当我这样做时,它会发出警报,但消息是未定义的,在我的控制器中,我有以下内容:echo json_encode(数组('status'=>$status,'msg'=>$msg));
echo json_encode(array('status' => $status, 'msg' => $msg));