vue报错Refused to evaluate a string as JavaScript because ‘unsafe-eval’ is not an allowed...
报错解释:
这个错误是浏览器的内容安全策略(CSP)导致的。CSP要求页面中的脚本必须是明确指定的来源,并且是经过规范的。错误信息表明,你的Vue应用试图评估一个字符串作为JavaScript代码,但是因为CSP的设置中没有开启对‘eval()’函数的使用,即列表中不允许使用‘unsafe-eval’。
解决方法:
如果你有权限修改CSP设置,可以在服务器上的响应头中添加或者修改
Content-Security-Policy
,允许使用unsafe-eval
。例如:Content-Security-Policy: script-src 'self' 'unsafe-eval'
这将允许当前域下的脚本和使用
eval()
的代码执行。如果你不能修改CSP设置,或者不想开启
unsafe-eval
,你可以尝试以下替代方法:- 使用模块化打包工具(如Webpack)时,确保配置了tree-shaking和minimization,以减少可能被
eval()
调用的代码。 - 避免直接使用
eval()
来执行字符串代码。 - 如果是通过CDN加载的外部脚本,确保CDN支持CSP并且没有使用
unsafe-eval
。 - 使用Vue的单文件组件(.vue文件),它们在编译时进行模板-render函数的转换,避免了使用
eval()
。
- 使用模块化打包工具(如Webpack)时,确保配置了tree-shaking和minimization,以减少可能被
注意:在实际生产环境中,应当尽可能小心地设置CSP策略,并尽量不使用unsafe-*
选项,以保证代码执行的安全性。
评论已关闭