使用jqueryajax成功处理程序

使用jqueryajax成功处理程序,jquery,ajax,Jquery,Ajax,我刚刚发现有一个Ajax成功处理程序,它非常棒,因为它是自动化的!但是我不确定它是否适合我的用例 我进行了很多ajax调用,并且大部分是通过编程(没有用户点击等)进行的,因此我并不想将函数绑定到html元素 这就是我做事情的方式,但我想自动化这个过程。 关键的一点是,必须先调用该方法,如果捕获了某些内容,则不希望在响应处理程序中执行 function GetSomeData() { $.getJSON("/ajax/getsomedata",GetSomeDataResponse);

我刚刚发现有一个Ajax成功处理程序,它非常棒,因为它是自动化的!但是我不确定它是否适合我的用例

我进行了很多ajax调用,并且大部分是通过编程(没有用户点击等)进行的,因此我并不想将函数绑定到html元素

这就是我做事情的方式,但我想自动化这个过程。 关键的一点是,必须先调用该方法,如果捕获了某些内容,则不希望在响应处理程序中执行

function GetSomeData() {     
$.getJSON("/ajax/getsomedata",GetSomeDataResponse);
}
function GetSomeDataResponse(response){
    if(DoesServerResponseIndicateError(response)) {
        //Continue
    }
}
function DoesServerResponseIndicateError() {
//see if it contains any custom errors, if it does, Don't execute the //continue block
}

如果您想自动执行错误处理,我将研究用于此目的的函数。它是一个全局处理程序,可以处理页面上任何地方发出的所有ajax请求

或者,为了使其更细粒度,您可以在单个调用中使用
错误
回调


试图猜测成功的ajax调用中的数据是否指示错误是非常困难的,而且会适得其反

你的问题是什么?到目前为止,我看不出你有什么问题。你试了什么?您遇到了什么问题?问题是,我在每个ajax成功处理程序中都调用了这个函数,它不是很枯燥,而且有点冗长。虽然只是在寻找一个更好的解决方案,但效果很好:)您可以将所有通用代码放在一个函数中,只需将URL和成功回调传递给该函数,这样所有服务器响应解析都可以在一个函数中完成。您好,谢谢您的回答。我在做前端,我的合作伙伴在做JSP代码,它使用JSONResourceTion来响应,而不是实际的服务器错误,因此jQuery不会将其识别为错误。我已经设置了一个errorhandler来处理实际的404错误等,但是当错误响应以JSON格式返回时,我认为我需要进行自定义处理。我还有另一个问题,如果我的用户点击太快,那么服务器将无法及时响应ajax调用,我会得到一个404。因此,我可能会考虑在每个ajax调用实际发送请求之前,在其上放置一个超时函数,这是在ajax生命周期中自动化逻辑的另一个用例cycle@Baconbeastnz-那就行了。当然,对于返回的数据,您的
DoeServerResponseIndicateError
将需要一个参数,但是,是的,只需检查数据中的错误代码,并使用404s之类的全局错误处理程序即可。@Baconbeastnz不确定单击过快的问题。你可能想问一个新问题,并真正解释好它,因为我不明白。成功的意义不就是只在成功时开火吗?您可以在Json回复中添加一个响应来确认这一点