2016-08-12 8 views
1

NWとAngularJSを使用してアプリケーションを作成して、デスクトップアプリケーションを作成しています。サーバー(html、css、js)からファイルを取得します。AngularJSを使用したリモートURLからテンプレートを取得する方法

、私は次のコードのような何かをしたい:

aux.config(function ($routeProvider) { 
    $routeProvider 
     .when('/testInformation/', { 
     templateUrl: 'https://serverName/test.html', 
     controller: 'shipmentInformationController' 
    }).otherwise({ 
     redirectTo: '/' 
    }); 
}); 

問題は、私はそれは、テンプレートのHTMLを取得していないアプリを実行すると、その後、私はこのアイデアがある場合はわからないということですAngularJsで有効か、HTMLの内容を取得するためにそのロジックを変更する必要があるかどうかを確認します。

私はエラーに任意のヘルプ

Error: $sce:insecurl Processing of a Resource from Untrusted Source Blocked

感謝を取得しています。

答えて

0

私はインターネットでいくつかの検索をしていましたが、私にとってはうまくいく解決策を見つけました。

アイデアはデフォルトangularJsだけで同じドメインをサポートしているので、我々が設定されますときに、我々はfolowingコードのように「$ 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/**' 
    ]); 
}); 

をホワイトリストに追加することができ、ドメインを追加することですテンプレートURLでは、リモートサーバーを使用できます。

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

Cross-Origin Resource Sharingルールのため、リモートサーバーからコンテンツを直接ロードすることはできません。

比較的簡単な回避策は、Nginxのようなものを使ってコンテンツをプロキシして、自分のサーバーから来たように見せることです。

リモートサーバーを制御できる場合は、Access-Control-Allow-Originヘッダーを追加するだけです。

関連する問題