在 AngularJS 中,在以下场景中,Firefox 将unsafe:
在按以下方式生成的 url 前面。然后它会显示一个错误页面,指出“地址无法理解”。这是我本地 PC 上的文件请求。
Link:
<li ng-repeat="fruit in fruits">
<a href="{{ fruit.link }}">{{ fruit.title }}</a>
</li>
Array:
$scope.fruits = [
{ "title" : "Orange",
"link" : "fruits_orange.html" }
];
您正在看到此提交的副作用:https://github.com/angular/angular.js/commit/9532234bf1c408af9a6fd2c4743fdb585b920531旨在解决一些安全隐患。
此提交对以以下开头的网址引入了非向后兼容的更改file://
(随后放松了https://github.com/angular/angular.js/commit/7b236b29aa3a6f6dfe722815e0a2667d9b7f0899
我假设您使用的是 1.0.5 或 1.1.3 AngularJS 版本之一。如果是这样,您可以重新启用对file://
通过配置 URL$compileProvider
像这样:
angular.module('myModule', [], function ($compileProvider) {
$compileProvider.urlSanitizationWhitelist(/^\s*(https?|ftp|mailto|file):/);
});
或者在 Angular 1.2.8 及以上版本中:
angular.module('myModule', [], function ($compileProvider) {
$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file):/);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)