JQuery.美元.Post request .done() .fail()避免代码重复
JQuery. $.post request .done() .fail() avoid code duplication
我有一个post request
$.post("test", {
ajax: "true",
action: ""
}).done(function(data){
if (data == "ok"){
//xxx
} else if (data == "err"){
//yyy
}
}).fail(function(){
//yyy
});
如何避免代码重复在post请求如果代码在。done()方法(评论'yyy')相同的失败方法(评论'yyy') ??
最明显和最简单的解决方案是简单地有一个失败回调,如下所示:
function ajaxFailed() {
// yyy
}
$.post("test", {
ajax: "true",
action: ""
}).done(function(data){
if (data == "ok"){
//xxx
} else if (data == "err"){
ajaxFailed();
}
}).fail(ajaxFailed);
您可以使用always回调方法,请求将始终在该块中。正如您所知道的,当数据包含错误或不包含错误时,此方法将适用于服务器端错误。您可以通过定义最后的else块来捕获客户端错误。
$.post("test", {
ajax: "true",
action: ""
}).always(function(data){
if (data == "ok"){
//xxx
} else if (data == "err"){
//handle server-side errors
} else {
//handle client-side errors like 404 errors
}
});
让它们调用相同的函数,例如
function onErr() {
//yyy
}
$.post("test", {
ajax: "true",
action: ""
}).done(function(data){
if (data == "ok"){
//xxx
} else if (data == "err"){
onErr();
}
}).fail(onErr);
另一种方法是稍微更改协议,并使用HTTP状态码来指示成功或失败:
if($sqlError){
header("HTTP/1.1 503 Service unavailable");
}
…
.done(function(){
//xxx
}).fail(function(){
//yyy
});
相关文章:
- 从桌面读取python文件时高亮显示代码
- 如何将函数包装在函数中以避免代码重复
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 货币代码为欧元-金额的格式不应包含小数
- Regex代码只允许一个空格
- 如何将屏幕分辨率乘以 80%,然后在代码中使用
- 从var向代码隐藏函数传递值
- 如何动态插入jquery代码
- 如何在php变量中嵌入JQuery代码
- 代码不会验证
- 如何从rails中的代码中删除新行( )
- Angularjs代码未在匿名函数中运行
- 如何做到这一点,使代码在不传递条件后执行函数
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 面向对象的Javascript代码在IE7中不起作用
- 将 jQuery 代码添加到 Index.aspx 页面
- 为什么忽略了eval()代码中的语法错误
- 元素在我的代码中不会.fadeTo.Don'I don’我不知道;s错误的JavaScript、JQuery、H
- 代码镜像的详细模式(无silent-fail)
- JQuery.美元.Post request .done() .fail()避免代码重复