2011-11-18 16 views
0

我正在编写一个REST api。它在错误时返回标题状态400。

但是,在AJAX方面,我无法得到返回的jqxhr对象。

$.get('site.php', function(data, status, jqxhr) function(data) { 
    //... 
}).error(console.log(jqxhr)); 

它返回Uncaught ReferenceError: jqxhr is not defined
在检查控制台中,其显示400(错误请求)的获取请求。

如何获取文本错误请求?

我可以通过在标题状态200中传递数据来返回数据中的文本错误,但这不正确吗?

回答

2

error功能想要一个回调函数,但你执行console.log(jqxhr)并试图返回值交给error作为回调,这就是你“jqxhr没有定义”错误的来源。

你想是这样的:

$.get('site.php', function(data, status, jqxhr) function(data) { 
    //... 
}).error(function(jqXHR, textStatus, errorThrown) { 
    // Do something interesting. 
}); 

你也应该使用fail代替errorerror is going away

取消通知:jqXHR.success()jqXHR.error()jqXHR.complete()回调将是在jQuery 1.8中不推荐使用。要准备代码以进行最终删除,请改为使用jqXHR.done(),jqXHR.fail()jqXHR.always()

+0

完美答案。并感谢突出强调使用.done().fail()和.always()。 – resting