hoo*_*gan 8 javascript angularjs
我一直在尝试设置一个搜索表单,我可以在其中注入表单操作属性.
以我的形式,我有
<form action="{{action}}">
Run Code Online (Sandbox Code Playgroud)
然后在我的控制器中我有
$scope.action = "http://www.somesite.com"
Run Code Online (Sandbox Code Playgroud)
这给了我一个插值错误,因为它在字符串中有不受信任的"http:".我该如何解决这个问题.我知道我可以使用ng-bind-html将html放在dom中,但我不知道我是否可以只使用属性.
其他人遇到过这个问题吗.我真的想不出办法解决它.
谢谢
如果您使用的是 Angular.js 1.2 或更高版本,则可以访问Strict Contextual Escape Service , $sce。
SCE 以 (a) 默认情况下是安全的方式帮助编写代码,并且 (b) 使对安全漏洞(例如 XSS、点击劫持等)的审计变得更加容易。
在 $sce 中,您可以传递一个变量$sce.trustAsUrl(value)来获取它的原始值。所以你应该能够使用:
$scope.action = $sce.trustAsUrl("http://www.somesite.com");
| 归档时间: |
|
| 查看次数: |
8093 次 |
| 最近记录: |