AngularJS:如何解决“尝试在安全上下文中使用不安全值”?
Posted
技术标签:
【中文标题】AngularJS:如何解决“尝试在安全上下文中使用不安全值”?【英文标题】:AngularJS: How to resolve "Attempting to use an unsafe value in a safe context"? 【发布时间】:2017-06-19 05:03:13 【问题描述】:当我尝试将我的数据显示为 text-html 时,它以 HTML 格式显示,但是当我刷新页面时,我收到此错误:
[$sce:unsafe] 尝试在安全上下文中使用不安全值。
这是我的 AngularJS 代码:
data.attributes.task_name = $sce.trustAsHtml(data.attributes.task_name);
HTML
<span ng-bind-html="taskdata.attributes.task_name" data-html="true" title="reminder.attributes.message"></span>
【问题讨论】:
my answer 解决了您的问题吗? 【参考方案1】:来自Angular documentation:
未发现提供用于特定上下文的值 安全/值得信赖。
AngularJS 的Strict Contextual Escaping (SCE) 模式(由 默认),需要在某些上下文中绑定才能产生一个值 在这种情况下可以安全使用。 (例如加载一个 来自 URL 的 AngularJS 模板要求 URL 被考虑 安全加载资源。)
这有助于防止 XSS 和其他安全问题。阅读更多Strict Contextual Escaping (SCE)
您可能希望包含
ngSanitize
模块以使用自动 消毒。
您必须包含 ngSanitize
:
在 index.html 上加载它:
<script src="lib/angular/angular-sanitize.min.js"></script>
将其作为依赖项注入您的 app.js:
angular.module('myApp', ['...', 'ngSanitize']);
【讨论】:
这让我可以在 AngularJS 中用换行符拆分连接一个字符,这真是太神奇了。谢谢! 包括 ngSanitize 为我修复了它!谢谢!以上是关于AngularJS:如何解决“尝试在安全上下文中使用不安全值”?的主要内容,如果未能解决你的问题,请参考以下文章
如何解决 angularjs 未捕获的错误:[$injector:modulerr]?
AngularJS:如何解决“尝试在安全上下文中使用不安全值”?
如何使用 angularjs $http 修复我的 jsonp 回调以解决“意外令牌”错误?