Javascript 如何使用AngularJS从远程URL获取模板
我正在用NW和AngularJS制作一个应用程序来制作一个桌面应用程序,我想要的是从服务器获取文件(html、css、js) 然后我想做如下代码: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
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'