Jquery 成功上传后ajax响应失败
我正在使用jquery将文件/图像上传到codeigniter控制器。 经过长时间的努力,我成功地上传了图像,但是,ajax函数出现了一个笨拙的行为 问题:操作成功完成时,ajax重定向到.fail() 这是我的密码:- Javascript-AJAX调用Jquery 成功上传后ajax响应失败,jquery,ajax,codeigniter,Jquery,Ajax,Codeigniter,我正在使用jquery将文件/图像上传到codeigniter控制器。 经过长时间的努力,我成功地上传了图像,但是,ajax函数出现了一个笨拙的行为 问题:操作成功完成时,ajax重定向到.fail() 这是我的密码:- Javascript-AJAX调用 $.ajax({ url : url, type: 'POST', data: data, cache: false,
$.ajax({
url : url,
type: 'POST',
data: data,
cache: false,
dataType: 'json',
processData: false,
contentType: false
}).done(function(response){
alert(response);
}).fail(function(request,status,error){
alert(request.responseText);
});
Codeigniter PHP控制器
if( $this->upload->do_upload('item_'.$content_id) ){
$file_info = $this->upload->data();
$file_name = $file_info['file_name'];
$result = $this->contents->update(array('value' => $file_name), $content_id);
if( $result ){
echo "success";
die();
}
else{
echo "fail";
die();
}
}
页面从.fail()函数中发出警报:“success”,因为处理后的语句是:alert(request.responseText)
有什么想法吗?您的ajax调用需要以json格式响应,但您正在以文本形式发送响应,请尝试以json格式发送响应
if( $result ){
header('Content-Type: application/json');
echo json_encode(array('status' => 'file is uploaded'));
die();
}
else{
header('Content-Type: application/json');
echo json_encode(array('status' => 'failed to upload'));
die();
}
还要调整ajax代码以获得成功调用
$.ajax({
url: url,
type: 'POST',
data: data,
cache: false,
dataType: 'json',
processData: false,
contentType: false,
success: function (data) {
alert("SUCCESS: " + data.status);
},
error: function (data) {
alert("ERROR: " + data.status);
}
})
状态和错误参数的内容是什么?至于json响应,我的大多数ajax调用都设置为数据类型:“json”,但为了简单起见,我总是从服务器上调用“success”或“fail”。至于成功和错误,我曾被建议使用新的jquery函数(done&fail)。在一篇最佳实践文章中。很抱歉,无法为此提供链接。无论如何,谢谢你的帮助