Jquery 未在成功函数中调用警报

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

我正在使用ajaxfileupload.js,表单正在提交,它进入了错误处理函数,但它data.msg似乎未定义

$('#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));