我最初的任务如下:
- 执行 jQuery.ajax()
- 成功后,对服务器返回的数据做一些额外的检查
- 如果这些检查失败,则返回一个被拒绝的承诺。
在谷歌搜索和stackoverflowing之后,诞生了以下解决方案:
$.ajax({
type: "POST",
url: "some url",
data: somedata,
error: somefunction
}).then(function (data) {
if (!ajaxSuccess(data, null, null)) {
return new $.Deferred().reject().promise();
}
return data;
});
(函数 ajaxSuccess 确实执行了上面第 2 段中提到的检查。)
我不喜欢这段代码的是最后一行:
return data;
恕我直言,返回原始的 ajax jqXHR 对象会更正确,因为代码的结果将被第三方库 js-Grid.com 使用,它需要一个 jqXHR/promise。
所以问题是:
- 返回原始的ajax jqXHR而不是解析的JSON是否更正确?
- 如何返回原始的jqXHR?
首先十分感谢。