在您的 HTML 代码中,对于您设置了 Access-Control-Allow-Origin 的每个脚本,在 script 标签上设置 crossorigin=“anonymous”。在脚本标记中添加 crossorigin 属性之前,请确保验证上述 header 正确发送。
在 Firefox 中,如果存在crossorigin属性,但Access-Control-Allow-Origin头不存在,则脚本将不会执行。
5、 TypeError: Object doesn't support property
这是您在调用未定义的方法时发生在 IE 中的错误。 您可以在 IE 开发者控制台中进行测试。
这相当于 Chrome 中的 “TypeError:”undefined“isnotafunction” 错误。
是的,对于相同的逻辑错误,不同的浏览器可能具有不同的错误消息。
对于使用 JavaScript 命名空间的 Web 应用程序,这是一个 IE 浏览器的常见的问题。 在这种情况下,99.9% 的原因是 IE 无法将当前名称空间内的方法绑定到 this 关键字。
例如:如果你 JS 中有一个命名空间 Rollbar 以及方法 isAwesome。 通常,如果您在 Rollbar 命名空间内,则可以使用以下语法调用 isAwesome 方法:
this.isAwesome();
Chrome,Firefox 和 Opera 会欣然接受这个语法。 但是 IE 却不会。 因此,使用 JS 命名空间时最安全的选择是始终以实际名称空间作为前缀。
Rollbar.isAwesome();
6、 TypeError: ‘undefined' is not a function
当您调用未定义的函数时,这是 Chrome 中产生的错误。 您可以在 Chrome 开发人员控制台和 Mozilla Firefox 开发人员控制台中进行测试。
执行上面的代码会导致以下错误:
“Uncaught TypeError:this.clearBoard is not a function”。
原因应该是清楚的,即执行上下文不理解导致的指向错误。
7、 Uncaught RangeError
当你调用一个不终止的递归函数就会发生这种错误。您可以在 Chrome 开发者控制台中进行测试。
此外,如果您将值传递给超出范围的函数,也可能会发生这种情况。
许多函数只接受其输入值的特定范围的数字。 例如:
toExponential(digits) 和 toFixed(digits) 接受 0 到 100
toPrecision(digits) 接受 1 到 100
8、 TypeError: Cannot read property ‘length'
这是因为读取未定义变量的长度属性而发生的错误。 您可以在 Chrome 开发者控制台中进行测试。
您通常会在数组中找到定义的长度,但是如果数组未初始化或者变量在另一个上下文中,则可能会遇到此错误。让我们用下面的例子来理解这个错误。
执行以上代码会报错:
Cannot read property 'length' of undefined
有两种方法可以解决这个问题:
或
9、 Uncaught TypeError: Cannot set property
当我们尝试访问一个未定义的变量时,它总是返回 undefined,我们不能获取或设置任何未定义的属性。 在这种情况下会将抛出 “Uncaught TypeError: Cannot set property”。
10. ReferenceError: event is not defined
当您尝试访问未定义的变量或超出当前作用域的变量时,会引发此错误。 您可以在 Chrome 浏览器中测试。
如果在使用 event 时遇到此错误,请确保使用传入的事件对象作为参数。像 IE 这样的旧浏览器提供了一个全局变量事件,但并不是所有浏览器都支持。
总结