我在客户端设置了ajax错误处理程序
$(document).ajaxError(processAjaxError);
$.getJSON('/data.json');
在服务器端
def get(self):
self.response.headers['Content-Type'] = 'application/json'
self.response.write('Hello, World!')
即使我有200个状态代码,仍然会调用ajaxError回调,因为响应数据不是json。但是在processAjaxError
回调参数中,我如何获得确切的错误消息?
答案 0 :(得分:0)
ajaxerror函数应按此顺序接收参数:
event, jqxhr, settings, thrownError
此处有更多信息:http://api.jquery.com/ajaxerror/
文档中的完整示例:
$( document ).ajaxError(function( event, jqxhr, settings, thrownError ) {
if ( settings.url == "ajax/missing.html" ) {
$( "div.log" ).text( "Triggered ajaxError handler." );
// Do whatever you want with thrownError here
}
});
如果您正在尝试找出为什么抛出404(如果它是无效的json或其他原因),您可以尝试解析您返回的数据的responseText排除这种可能性。
try {
$.parseJSON(responseText);
} catch(err) {
// Failed the json test
}