ajax调用错误处理函数或if-else语句
ajax call error handling function or if-else statement
如果我已经使用了"if-else"语句,我想知道是否有必要在下面提到的示例中使用ajax调用错误处理函数:
我的型号:
if ($query && $query->num_rows() > 0) {
return $query->result();
} else {
return false;
}
我的控制器:
if ($this->model_users->did_get_data($user_id)) {
$data["results"]= $this->model_users->did_get_data($user_id);
echo json_encode($data);
}
else {
$data = array(
'message' => "Could not find any posts."
);
echo json_encode($data);
}
我的JS文件:
$.get('controller/get_data', function (data) {
if (data.message !== undefined) {
$( "#data_is_not_got").text(data.message);
} else {
//displaying posts
}
}, "json");
是的,您仍然应该向AJAX调用添加一个错误处理程序。这将使您能够优雅地处理if/else语句没有涵盖的调用可能出现的任何数量的潜在问题-无法连接到服务器、内部服务器错误等。
这取决于控制器可能发生的情况。
如果你绝对确定不会有任何404错误或不会有任何超时错误,你可以在没有错误处理功能的情况下工作。但因为我确信你不能说它是100%确定的,我认为你必须实施它;)
但我的建议是:如果你不止一次使用AJAX调用,请创建你自己的"AJAX API",它只使用一个回调,你可以使用一个状态参数来告诉回调是否一切正常,所以实际上你只需要使用一个if-else语句。
这是我处理PHP后端的一个方法的一个简短示例:
ajax = function (callback) {
$.ajax({
// whatever you need here
success: function (response) {
if (typeof callback == "function") {
callback(true, response);
}
},
error: function (e) {
if (typeof callback == "function") {
if (e.statusText == "timeout") {
callback(false, {"timeout": true})
} else {
try {
JSON.parse(e.responseText)
// if try is successfull, there is no fatal-error (which would exit the PHP, so no JSON)
callback(false, {})
} catch (x) {
// only maximum-execution-time-errors are fatal errors :P
if (e.responseText.indexOf('<b>Fatal error</b>') != -1) {
callback(false, {"timeout": true})
}
}
}
}
},
})
}
相关文章:
- 如何在ReactJS JSX中执行嵌套的if-else语句
- 如何检查if/else语句中的随机条件
- 在Javascript中为if/else语句添加OR
- geoTest函数-创建if/else语句
- Jquery/Javascript使用IF/ELSE语句更改img SRC
- 编写if-else语句的更好方法
- 在if/else语句中显示DIV
- 由 if / else 语句中的无效语法导致的语法错误
- JavaScript if else 语句来显示 html 标签
- 如何做if/else语句并使用控制台.log打印出来
- 此 JavaScript 代码无法正常工作(if-else 语句)
- 不带花括号的If/else语句javascript
- 如何缩短if-else语句
- 用于筛选数据的函数--if.else语句
- 赢得't输入javascript if/else语句
- 打印出带有参数的if-else语句
- 更改jQuery中if-else语句的图标
- If/else语句和用户下拉选择
- PHP、JS和带有if-else语句的代码点火器脚本
- 什么'这是一种基于if/if-else语句显示popover的简单方法