在 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://
开头的 url 引入了一个非向后兼容的更改(随后在 https://github.com/angular/angular.js/commit/7b236b29aa3a6f6dfe722815e0a2667d9b7f0899 中放宽了
我假设您使用的是 1.0.5 或 1.1.3 AngularJS 版本之一。如果是这样,您可以通过像这样配置 $compileProvider
来重新启用对 file://
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/21906827/