在AngularJS中,在以下情况下,Firefox将unsafe:
放在以以下方式生成的URL之前。然后,它显示一个错误页面,显示“无法理解该地址”。这是我本地PC上的文件请求。
链接:
<li ng-repeat="fruit in fruits">
<a href="{{ fruit.link }}">{{ fruit.title }}</a>
</li>
数组:
$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://
来重新启用对$compileProvider
URL的支持:
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):/);
});
关于angularjs - Angular 不安全链接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15637133/