如何使用promises获取失败的ajax请求的URI?

时间:2015-07-21 13:20:07

标签: javascript jquery ajax

我有这个简单的代码:

var jqXHR = $.getJSON(uri);
jqXHR.done(function (ajax_data) { /* put here your code */ });
jqXHR.fail(function (jqXHR, lvl, msg) {
    console.error(lvl + " with AJAX call: " + msg);
});

有没有办法从uri处理程序中的jqXHR对象获取fail()?没有jqXHR.url属性,与jqXHR的{​​{1}}处理程序的error()参数相对。

我可以使用$.ajax(),但它是来自服务器的整个响应,对我来说有点太多了。

PS:我使用jQuery承诺易于使用。如果我有时间,我会使用the Q library

1 个答案:

答案 0 :(得分:0)

  

没有jqXHR.url

尝试this.url

var jqXHR = $.getJSON("../"); // `uri` : `"../"` 
jqXHR.done(function (ajax_data) { /* put here your code */ });
jqXHR.fail(function (jqXHR, lvl, msg) {
    console.error(lvl + " with AJAX call: " + msg, this.url); // `error with AJAX call:  ../` 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>