美文网首页
script error

script error

作者: jluemmmm | 来源:发表于2020-11-26 20:36 被阅读0次

问题现象

为了加快网站访问速度,会将静态资源放到第三方 CDN 上,用 window.error 事件做监控时,跨域的脚本会提示script error,拿不到具体的错误信息和堆栈信息。

出现原因

浏览器在加载外部的js抛出异常的情况下,处于安全方面的考虑,js 错误信息中可能包含一些敏感信息,如用户名、权限提示等,把这类信息屏蔽。目前跨域场景下回触发这种安全限制, window.error 无法获取具体出错信息,只能得到 script error

解决方式:

  • js返回的 header 里面增加允许 cors 的域 Access-Control-Allow-Origin
  • script 标签 增加 crossorigin="anonymous"

crossorigin 属性

HTML5中,<audio><img><link><script><video>均有一个跨域属性crossorigin,允许配置元素获取数据的 CORS 请求。如 Terminology section of the CORS specification ,在非同源的情况下,设置anonymous关键字将不会通过 cookie,客户端 SSL 证书或 HTTP 认证交换用户凭据。相关属性的设置如下

关键字 描述
anonymous 对此元素的 CORS 请求将不设置凭据标志
use-credentials 对此元素的 CORS 请求将设置凭证标志,请求将提供凭据
空值或者无效关键字 与设置 anonymous 效果一样

wepack中可以通过 html-webpack-script-attributes-plugin 为动态注入的 script 脚本添加这一属性

需要m的,浏览器的同源策略到底是什么
weppack 配置,自己实现一个 plugin

相关文章

网友评论

      本文标题:script error

      本文链接:https://www.haomeiwen.com/subject/uhqziktx.html