Ajax 在发生错误时调用 return 文件或部分文件 html - 如何处理?
Ajax call which return a file or a partial html on case of error - how to handle that?
假设我们有一个带有一些设置的对话框,然后在对话框按钮“确定”上,设置通过 AJAX 调用发送到控制器函数。此调用要么生成可下载文件,要么生成(部分)html 源代码中描述的错误。在后一种情况下,必须将此错误消息插入到对话框中。
$.ajax( {
url: url,
data: dialogFormData,
success: function(data) { ???? }
});
如何处理这种情况?如何处理 ajax 响应来处理结果?有什么想法吗?
您想要的是检查响应类型并采取相应措施。
您可以尝试类似的操作:
$.ajax({
url: url,
data: dialogFormData,
success: function(response, status, xhr){
var ct = xhr.getResponseHeader("content-type") || "";
if (ct.indexOf('multipart/form-data') > -1) {
// do something with file
}
if (ct.indexOf('text/html') > -1) {
// do something with html
}
}
});
我没有测试这段代码,您可能需要尝试一下类型才能获得正确的类型。
假设我们有一个带有一些设置的对话框,然后在对话框按钮“确定”上,设置通过 AJAX 调用发送到控制器函数。此调用要么生成可下载文件,要么生成(部分)html 源代码中描述的错误。在后一种情况下,必须将此错误消息插入到对话框中。
$.ajax( {
url: url,
data: dialogFormData,
success: function(data) { ???? }
});
如何处理这种情况?如何处理 ajax 响应来处理结果?有什么想法吗?
您想要的是检查响应类型并采取相应措施。
您可以尝试类似的操作:
$.ajax({
url: url,
data: dialogFormData,
success: function(response, status, xhr){
var ct = xhr.getResponseHeader("content-type") || "";
if (ct.indexOf('multipart/form-data') > -1) {
// do something with file
}
if (ct.indexOf('text/html') > -1) {
// do something with html
}
}
});
我没有测试这段代码,您可能需要尝试一下类型才能获得正确的类型。