我正在使用 jQuery 向远程端点发出 AJAX 请求。如果出现故障,该端点将返回一个 JSON 对象,并且该对象将描述该故障。如果请求成功,它将返回 HTML 或 XML。
我了解了如何在 jQuery 中定义预期的请求类型作为 $.ajax()
调用的一部分。有没有办法在 success
处理程序中检测请求类型?
$.ajax(
{
type: "DELETE",
url: "/SomeEndpoint",
//dataType: "html",
data:
{
"Param2": param0val,
"Param1": param1val
},
success: function(data) {
//data could be JSON or XML/HTML
},
error: function(res, textStatus, errorThrown) {
alert('failed... :(');
}
}
);
最佳答案
您的应用程序是否生成正确的内容类型 header (application/json、text/xml 等)并在成功回调中处理这些 header 。也许这样的东西会起作用?
xhr = $.ajax(
{
//SNIP
success: function(data) {
var ct = xhr.getResponseHeader('Content-Type');
if (ct == 'application/json') {
//deserialize as JSON and continue
} else if (ct == 'text/xml') {
//deserialize as XML and continue
}
},
//SNIP
);
未经测试,但值得一试。
关于javascript - 我可以在成功回调中评估 $.ajax() 调用的响应类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/291466/