Php Codeigniter,AJAX-Chrome中的控制台显示错误响应

Php Codeigniter,AJAX-Chrome中的控制台显示错误响应,php,jquery,ajax,forms,codeigniter,Php,Jquery,Ajax,Forms,Codeigniter,我正在尝试提交一个音乐上传表单,从另一个页面获取输入字段的数据。我只想做一件简单的事情:如果我删除其中一个必填字段,我希望控制台显示表单错误 这是视图(upload.php): 这是AJAX函数(用$(document.ready(function(){})包装): 或者,如果我不使用字段,而是上传图像: {"image":"true","status":"success","message":"Successful uploading."} 但问题是不管我做什么,我总是在控制台中得到相同的行

我正在尝试提交一个音乐上传表单,从另一个页面获取输入字段的数据。我只想做一件简单的事情:如果我删除其中一个必填字段,我希望控制台显示表单错误

这是视图(upload.php):

这是AJAX函数(用
$(document.ready(function(){})
包装):

或者,如果我不使用字段,而是上传图像:

{"image":"true","status":"success","message":"Successful uploading."}
但问题是不管我做什么,我总是在控制台中得到相同的行,这是一个问题,因为我想稍后处理这些错误消息

在控制台日志(响应)上:

console.log(response.message)
上:

这些基本上都是我删除所有输入字段时可能出现的表单错误。看起来验证函数在
$this->form\u validation->run()==FALSE
部分中被阻塞,忽略所有填充的字段。但同时,空白页中的JSON对象和“Chrome DeV工具>网络->预览或响应”显示正确的响应。
我尝试了以下方法来解决问题:

修改获取表单错误的方式

除了上述方法外,我还尝试了其他两种方法:

$result['message'] = array(
  'title' => form_error('title'),
  'artist' => form_error('artist'),
  'album' => form_error('album'),
  'rel_year' => form_error('rel_year'),
);
而且:

$result['message'] = validation_errors();
所有这些都不起作用,一切都保持不变


修改AJAX函数

我只在函数中添加了
data
属性,以查看是否有任何变化。在这里也尝试了两种方法:

data: $('#upload_form').serialize()
以及:

也没有成功



我一直坐在这里想到底是什么问题,不知道解决方案简直让我抓狂:(有什么建议吗?

检查此解决方案也检查此AJAX不能以这种方式工作。只要单击“提交”按钮,请求就会被发送。您可以禁用默认表单行为(默认)()方法在JS代码中设置事件。类似于。我知道它无法工作,但即使使用
preventDefault()
给了我同样的错误。我只是测试我是否得到了正确的表单错误。顺便说一句,我尝试了第一个解决方案,它给了我一个
未定义的索引:cover
错误,而我清楚地添加了一个
name
属性,其值为
cover
{"image":"true","status":"success","message":"Successful uploading."}
Object {image: "not set", status: "error", message: Object}
Object {title: "The title field is required.", artist: "The artist field is required.", album: "The album field is required.", rel_year: "The release year field is required."}
$result['message'] = array(
  'title' => form_error('title'),
  'artist' => form_error('artist'),
  'album' => form_error('album'),
  'rel_year' => form_error('rel_year'),
);
$result['message'] = validation_errors();
data: $('#upload_form').serialize()
data: new FormData($(this)[0])