JQuery $.ajax 捕获异常信息
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JQuery $.ajax 捕获异常信息相关的知识,希望对你有一定的参考价值。
参考技术A转自 : http://blog.csdn.net/wenle006/article/details/7022240
(默认: 自动判断 (xml 或 html)) 请求失败时调用时间。参数有以下三个:XMLHttpRequest 对象、错误信息、(可选)捕获的错误对象、XMLResponse对象。如果发生了错误,错误信息(第二个参数)除了得到null之外,还可能是"timeout", "error", "notmodified" 和 "parsererror"。
状态码
eg:python cgi+js:
前端调用python 已经print result了,但是前端并没有收到,依然pendding,一直是 Provisional headers are shown ,当结束进程时,前端返回200,此时会把之前的result打印出来并附带了cgi的头,如下:导致textStatus为parsererror
可以使用: chrome://net-internals/#events 查看问题
使用 jQuery AJAX 捕获 404 状态
【中文标题】使用 jQuery AJAX 捕获 404 状态【英文标题】:Capture 404 status with jQuery AJAX 【发布时间】:2012-06-11 11:24:45 【问题描述】:我有这个代码:
$.ajax( cache: false,
url: "/Admin/Contents/GetData",
data: accountID: AccountID ,
success: function (data)
$('#CityID').html(data);
,
error: function (ajaxContext)
alert(ajaxContext.responseText)
);
我仍然对 ajaxContext 以及如何捕获 404 返回码感到困惑。不过我还有一个问题。我正在阅读有关成功和失败编码的内容,并且在最新版本的 jQuery 中不再使用错误。
所以我应该更改我的代码以使用完成并失败。那我怎么检查 404 呢?
【问题讨论】:
使用 .fail() 将如何工作? 【参考方案1】:如下替换你的错误函数...
error:function (xhr, ajaxOptions, thrownError)
if(xhr.status==404)
alert(thrownError);
【讨论】:
我之前遇到过错误:函数(jqXHR、textStatus、errorThrown)。 ajaxOptions 是否正确。应该是 textStatus 吗? 为我工作,不明白为什么不,但愿意以不同的方式被告知。 只是想注意这不适用于跨域调用。它将静默失败,并且不会执行“完成”或“错误”回调参数。 .fail 方法自 jQuery 1.7 起已弃用,您现在应该使用 .fail api.jquery.com/deferred.fail【参考方案2】:404 错误将由连接到 error
属性的匿名函数处理。除了对 URL 的成功 HTTP 请求(即 2xx)之外的任何内容都会触发错误方法。以下将适用于您的目的:
error : function(jqXHR, textStatus, errorThrown)
if(jqXHR.status == 404 || errorThrown == 'Not Found')
console.log('There was a 404 error.');
当他们在 jQuery 文档中提到删除 success
和 error
函数时,他们指的是 jqXHR 类的函数,而不是 $.ajax()
的属性。
【讨论】:
但是 JayTee 对匿名函数的编码是否正确?我之前的尝试只是将一个变量 ajaxContent 放在函数后的 parathasis 中。 回调函数接受三个参数:jqXHR(在 jQuery 1.4.x 中,XMLHttpRequest)对象、描述发生错误类型的字符串和可选的异常对象。发生 HTTP 错误时,errorThrown 会接收 HTTP 状态的文本部分,例如“未找到”或“内部服务器错误”。以上是关于JQuery $.ajax 捕获异常信息的主要内容,如果未能解决你的问题,请参考以下文章
ajax请求后台代码,如何实现后台抛出异常在前台捕获异常:如后台抛出throw exception("该帖子已被删除")