正文
以前前后端关于操作的处理,都是前台调用,后台成功:return 1,后台发生错误:return 0、或者return 2等。
开发的时候会发现,后台要写好多错误判断逻辑,返回到前端还需要重复写好多过滤逻辑,一方面开发效率降低,另一方面以后维护不方便。现在的解决办法是:后台把错误内容具体返回,前台只判断是否发生错误,不对错误具体细分处理,这样以后维护也简单。
看一下代码:
方案一:
- 后台:
return json_encode(['error' => 0, 'data' => []]); // 成功 return json_encode(['error' => '举报过程异常', 'data'=> []]); // 失败
- 前端:
$.post("/report/report-add", para, function (res) { var res = jQuery.parseJSON( res ); if ( res.error != 0 ) { sweetAlert(res.error, "错误", "error"); // 其他处理 ...... } else { // 成功处理 ...... } });
上面是收到返回后用jQuery.parseJSON()解析json格式为js对象,还有一种方法是在$.post()中带上返回数据的格式的参数,如:
$.post("/report/report-add", para, function (res) {
if ( res.error != 0 ) {
sweetAlert(res.error, "错误", "error");
// 其他处理
......
} else {
// 成功处理
......
}
}, 'json');
方案二:
- 后台:
return json_encode([ 'code' => 200, 'msg' => 'ok', 'data' => [], ]); return json_encode([ 'code' => 86010, 'msg' => '具体字符错误', 'data' => [], ]);
- 前端:
$.post("/report/report-add", para, function (res) { if ( res.code != 200 ) { sweetAlert( "错误", res.msg, "error" ); // 其他处理 ...... } else { // 成功处理 ...... } }, 'json');