前端错误Uncaught TypeError: Cannot read property 'length' of null错误怎么处理? 100

UncaughtTypeError:Cannotreadproperty'length'ofnull错误怎么处理?第二个图片中那个alert弹出来是有值的到下一句就没值了... Uncaught TypeError: Cannot read property 'length' of null错误怎么处理? 第二个图片中那个alert弹出来是有值的 到下一句就没值了 大牛帮忙解决
saveUrl: 'saveRight.do',
updateUrl: 'updateRight.do',
destroyUrl: 'deleteRight.do'
想知道这3个url 路径有什么作用 求大牛 解答
展开
 我来答
侃民生看社会
高粉答主

2021-04-01 · 百姓足天下安,小民生大社会,笔促和谐!
侃民生看社会
采纳数:8045 获赞数:49358

向TA提问 私信TA
展开全部
通过统计数据库中的1000多个项目,我们发现在 JavaScript 中最常出现的错误有10个。下面会向大家介绍这些错误发生的原因以及如何防止。
1. Uncaught TypeError: Cannot Read Property

这是 JavaScript 开发人员最常遇到的错误。当你读取一个属性或调用一个未定义对象的方法时,Chrome 中就会报出这样的错误。

导致这个错误发生的原因有很多,常见的一种情况是在渲染 UI 组件时,不正确地初始化状态。我们来看一个真实的应用程序中发生这种情况的例子。

以上代码有两个重要方面:

一是组件的状态(例如 this.state),在开始生命周期之前是 undefined 状态。

二是当通过异步的方式获取数据时,无论是在构造函数中 componentWillMount 中,还是在构造函数中提取 componentDidMount,组件在数据加载之前至少会渲染一次。当检测首次渲染时,会发现 this.state.items 是未定义的。此时就会出现一个错误 -“Uncaught TypeError: Cannot read property ‘map’ of undefined" in the consol”。

解决的方法很简单:在构造函数中使用合理的默认值进行状态初始化。

2. TypeError: ‘undefined’ Is Not an Object (evaluating...)

这是在 Safari 中读取属性或调用未定义对象上的方法时发生的错误,这与 Chrome 的上述错误基本相同,只是 Safari 使用不同的错误消息。

3. TypeError: Null Is Not an Object (evaluating...)

这是在 Safari 中读取属性或调用空对象上的方法时发生的错误。

在实际情况中,导致这种错误的原因之一是:在元素加载之前,就尝试在 JavaScript 中使用 DOM 元素。这是因为 DOM API 对于空白的对象引用返回 null。

任何执行和处理 DOM 元素的 JS 代码,都应该在创建 DOM 元素之后执行。JS 代码按照 HTML 中的规定自上而下进行解释。因此,如果在 DOM 元素之前存在标签,则脚本标签内的 JS 代码就会在浏览器分析 HTML 页面时执行。如果在加载脚本之前尚未创建 DOM 元素,就会出现这样的错误。

在这个例子中,我们可以通过添加一个事件侦听器来解决这个问题,事件侦听器会在页面准备就绪时通知我们。一旦 addEventListener 被触发,该 init( ) 方法就可以使用 DOM 元素。

4. (unknown): Script Error

当未捕获的 JavaScript 错误违背跨边界原则时,就会发生脚本错误。例如,如果将 JavaScript 代码托管在 CDN 上,则任何未被捕获的错误(通过 window.onerror 处理程序发出的错误,而不是 try-catch 中捕获到的错误)将仅报告为“脚本错误”。这是浏览器的一种安全措施,主要用于防止跨域传递数据的情况出现。

要获取真实的错误消息,需要执行以下操作:

Access-Control-Allow-Origin


Access-Control-Allow-Origin 设置为 *, 表示可以从任何域正确访问资源。* 如有必要,也可以用自己的域名进行替换,例如:

Access-Control-Allow-Origin: www.example.com

以下是在各种环境中设置的一些示例:

在脚本标签上设置crossorigin =“anonymous”

在你的 HTML 源代码中,为每一个脚本设置
Access-Control-Allow-Origin,在设置 SCRIPT 标签中,设置 crossorigin="anonymous"。在将 crossorigin 属性添加到脚本标签之前,请确保正在向脚本文件发送 header。在 Firefox 中,如果 crossorigin 属性存在但 Access-Control-Allow-Origin 标题不存在,则脚本不会执行。

5. TypeError: Object Doesn’t Support Property

当调用未定义的方法时,IE 中会发生这样的错误。

这相当于 Chrome 中的 “undefined’ is not a function” 错误。对于相同的逻辑错误,不同的浏览器可能会有不同的错误消息。

这是在 IE 的 Web 应用程序中使用 JavaScript 命名空间出现的一个常见问题。出现这种情况的绝大部分原因是IE无法将当前名称空间内的方法绑定到this关键字。例如,如果你有 JS Rollbar 方法的命名空间 isAwesome。通常,如果位于 Rollbar 命名空间内,则可以使用以下语法调用该 isAwesome 方法:

6. TypeError: ‘undefined’ Is Not a Function

当调用未定义的函数时,Chrome 中就会发生这样的错误。

执行上面的代码会导致以下错误:“Uncaught TypeError: undefined is not a function。” 发生以上错误的原因是,当你调用 setTimeout( ) 时,实际上是在调用 window.setTimeout( ),传递给 setTimeout( ) 的匿名函数是在窗口对象的上下文中定义的,而该窗口对象没有 clearBoard( ) 方法。

符合旧版浏览器的解决方案是以变量的方式简单地将引用保存在 this 中,然后通过闭包继承。
帐号已注销
2018-01-29 · TA获得超过463个赞
知道小有建树答主
回答量:598
采纳率:65%
帮助的人:281万
展开全部
你这个是easyui的datagrid吧,肯定是被你们魔改过的,调试下就知道了,我怀疑是需要一个数组,但是传入的是一个null,引发了空引用错误。
那个三个url肯定是你们魔改的方法的三个参数,分别是执行保存、更新、和删除的url
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
千姩尐貓8o
2019-04-21 · TA获得超过137个赞
知道答主
回答量:82
采纳率:50%
帮助的人:9.5万
展开全部
返回:{"total":0,"rows":null,"msg":null}这样就会报错,因为:"rows":null是空指针,可以改以空集,如下: {"total":0,"rows":[],"msg":null},就是new ArrayList()之类,虽然没有数据,但不会是空的,这样就不会报错了.

在用 Bee+spring+springmvc+easyui 开发javaweb时也碰到这个问题.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
茫茫人海一亮星

2021-04-01 · TA获得超过4.4万个赞
知道大有可为答主
回答量:4.1万
采纳率:82%
帮助的人:1507万
展开全部
前端错误Uncaught TypeError: Cannot read property 'length' of null错误怎么处理?最近在搞前端的时候突然报了Cannot read property ‘length’ of null的错,一开始都是在前端调试错,发现解决不了问题,后来发现如果你所查找的数据条数为0的时候,后端返回给前端是null,此时必然报错Cannot read property ‘length’ of null.
解决办法:
如果后端的返回值为null,就需要我们在后端返回一个空的list数组

本人错误的后台代码:

如果返回data有数据,那么返回Data=data,如果没有数据,我们没有给前端返回一个data,所以在前端就接受到的是个null

var data = IScreenshot.GetAllStuScreenInfo(studentId);
return data.Count != 0 ? new AjaxResult() { Status = "ok",Data=data } : new AjaxResult() { Status = "error",ErrorMsg= "暂时未能查询到任何信息"};
1
2
1
2
改正后的后台代码:加上一个data,此时data的值为空的list.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式