在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/

10-13 02:08
查看更多