angularjs - Angular 不安全的链接

标签 angularjs

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

相关文章:

angularjs - 如何列出模板缓存中的所有内容?

angularjs - 如何使用 Laravel API 在 AngularJS 表单中发送 csrf_token()?

javascript - 使用 ng-model 绑定(bind)来自 radio 输入的对象值

javascript - Angular - 从 promise 更新数组,整数不更新

javascript - 如何在加载时选择 Select2 下拉列表中的多个选项?

angularjs - 单击表中的列 - Protractor

angularjs - 如果任何集合包含超过 100 个文档,MEAN stack 应用程序将停止工作

javascript - 如何制作 AngularJS 指令来更改图像的 src 属性?

angularjs - 离线时使用 PubNub 排队发布调用

javascript - 调用模块常量?