复习2【mvc&js】:前端后端判断空值总结
前端判断空值的写法如下:
@{ ViewBag.Title = "NullableTest"; Layout = null; } <script src="~/Content/Scripts/jquery-2.1.1.js"></script> <h2>NullableTest</h2> <button id="btnGetValue">Get Value</button> <script> function isEmpty(value) { if (value === null || value === undefined) { console.log("value === null || value === undefined"); return true; } if (typeof value === "string" && value.trim() === "") { console.log("返回值是字符串且为空") return true; } if (Array.isArray(value) && value.length === 0) { console.log("返回值是数组且为空") return true; } if (typeof value === "object" && Object.keys(value).length === 0) { console.log("返回值是对象且为空") return true; } return false; } $("#btnGetValue").click(function () { $.ajax({ url: "GetBackEndValue", // 替换为实际接口地址 method: "GET", dataType: "json", success: function (response) { console.log("后端返回完整response:", response); // 判断后端返回的值是否为空 if (isEmpty(response)) { console.log("后端返回了空值"); } else { console.log("后端返回了有效数据:", response); } }, error: function (xhr, status, error) { console.error("请求失败:", error); } }); }) </script>
后端测试:
1. 返回空字符串

测试结果如下:

2. 返回空对象

测试结果如下:

3. 返回空数组

测试结果如下:

4. 返回 null 或 undefined

测试结果如下:

我的疑问:这边为何会请求失败,有进入断点,也有执行后端代码。
我的猜想是不是因为后端null的返回值,并不是前端能识别的json,前端有设置dataType: "json",表示只能接受json格式?(待认证,下一节专门讲解这个问题)
5. 返回复杂对象中的空字段

前端需要改成如下写法:

测试结果如下:

本文来自博客园,转载请注明原文链接:https://www.cnblogs.com/keeplearningandsharing/p/18824416
浙公网安备 33010602011771号