小编典典

AngularJS在扩展页面中将URL更改为“不安全:”

javascript

我正在尝试将Angular与一系列应用程序结合使用,每个Angular链接都是一个查看应用程序的详细信息(apps/app.id):

<a id="{{app.id}}" href="apps/{{app.id}}" >{{app.name}}</a>

每次我点击其中一个链接时,Chrome都会将该网址显示为

unsafe:chrome-extension://kpbipnfncdpgejhmdneaagc.../apps/app.id

哪里unsafe:来的?


阅读 269

收藏
2020-04-25

共1个答案

小编典典

您需要使用正则表达式将URL协议显式添加到Angular的白名单中。只有httphttpsftpmailto默认启用。unsafe:使用诸如的协议时,Angular会将未列入白名单的URL
作为前缀chrome-extension:

chrome-extension:协议列入白名单的一个好地方是在模块的配置块中:

var app = angular.module( 'myApp', [] )
.config( [
    '$compileProvider',
    function( $compileProvider )
    {   
        $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|chrome-extension):/);
        // Angular before v1.2 uses $compileProvider.urlSanitizationWhitelist(...)
    }
]);

当需要使用诸如file:和的协议时,同样的步骤也适用tel:

2020-04-25