【发布时间】:2026-01-31 07:35:01
【问题描述】:
我正在尝试使用 ajax 调用从服务器获取文本值('selected crate')。 Ajax 调用是:
var selected_crate ='';
$.ajax({
url: OC.linkTo('crate_it', 'ajax/bagit_handler.php')+'?action=get_crate',
type: 'get',
dataType: 'text/html',
success: function(data){
selected_crate = data.responseText;
$('#crates option').filter(function(){
return $(this).attr("id") == selected_crate;
}).prop('selected', true);
},
error: function(data){
var e = data.responseText;
alert(e);
}
});
而服务端代码sn-p是:
case 'get_crate':
$msg = $bagit_manager->getSelectedCrate();
print $msg;
break;
我想在成功后做点什么,但这个调用总是在错误处理程序中结束。如果有完整的处理程序,它将进入该处理程序。但我想同时使用成功和错误处理程序,因为我想
- 如果服务器端出现问题,则发送错误响应
- 在客户端取得成功
我正在努力实现这一目标。为什么这个调用总是在错误处理程序中结束,我如何才能真正发送关于这个调用的错误响应,如果发生任何错误,最终会在错误处理程序中,否则成功响应?
【问题讨论】:
-
响应的状态码是什么?
-
状态为 200,状态文本为“OK”
-
您是否尝试过删除
dataType选项?'text/html'无论如何都不是有效值。 -
是的,你是对的。当我删除数据类型时它可以工作。那么实际的数据类型是什么?我是古玩...非常感谢菲利克斯
-
它告诉 jQuery 响应的格式,以便 jQuery 可以为您做一些预处理。请参阅api.jquery.com/jQuery.ajax(在选项列表中查找
dataType)。
标签: php javascript jquery error-handling