Javascript 如何使用AngularJS从远程URL获取模板

Javascript 如何使用AngularJS从远程URL获取模板,javascript,angularjs,node.js,nw.js,Javascript,Angularjs,Node.js,Nw.js,我正在用NW和AngularJS制作一个应用程序来制作一个桌面应用程序,我想要的是从服务器获取文件(html、css、js) 然后我想做如下代码: aux.config(function ($routeProvider) { $routeProvider .when('/testInformation/', { templateUrl: 'https://serverName/test.html', controller: 'shipmen

我正在用NW和AngularJS制作一个应用程序来制作一个桌面应用程序,我想要的是从服务器获取文件(html、css、js)

然后我想做如下代码:

aux.config(function ($routeProvider) {
    $routeProvider
        .when('/testInformation/', {
        templateUrl: 'https://serverName/test.html',
        controller: 'shipmentInformationController'
    }).otherwise({
        redirectTo: '/'
    });
});
问题是,当我运行应用程序时,它没有获得模板的html,那么我不确定这个想法在AngularJs上是否有效,或者我是否需要更改其逻辑以获得html的内容

我发现了错误

错误:$sce:不安全URL处理来自不受信任源的资源 封锁


感谢您的帮助。

由于规则原因,您无法直接从远程服务器加载内容

一个相对简单的解决方法是使用类似Nginx的东西代理内容,使其看起来像来自您自己的服务器


如果您可以控制远程服务器,只需添加一个
访问控制允许源站
标题。

我在internet上进行了一些搜索,找到了一个适合我的解决方案

我们的想法是添加一个域,因为默认情况下angularJs只支持同一个域,然后我们可以添加一个带有“$sceDelegateProvider”的白名单,如下代码所示

.config(function ($sceDelegateProvider) {

    $sceDelegateProvider.resourceUrlWhitelist([
        // Allow same origin resource loads.
        'self',
        // Allow loading from our assets domain.  Notice the difference between * and **.
        'https://serverName.com/**'
    ]);
 });
之后,当我们设置templateURL时,我们可以使用远程服务器

.when('/test1/', {
        templateUrl: 'https://serverName.com/html/test1.html',
        controller: 'test1'