1

Ionic の関数の 1 つで次のエラーが発生します。

 Error: [$interpolate:interr] Can't interpolate: {{detailMl.file}}
Error: [$sce:insecurl] Blocked loading resource from url not allowed by $sceDelegate policy.  URL: http://192.168.1.105/sonschool/upload/mm_learning/44ec994b4e8892932d979ac93d045fa0.pdf
http://errors.angularjs.org/1.3.13/$sce/insecurl?p0=http%3A%2F%2F192.168.1.…%2Fsonschool%2Fupload%2Fmm_learning%2F44ec994b4e8892932d979ac93d045fa0.pdf
http://errors.angularjs.org/1.3.13/$interpolate/interr?p0=%7B%7BdetailMl.fi…school%252Fupload%252Fmm_learning%252F44ec994b4e8892932d979ac93d045fa0.pdf
    at REGEX_STRING_REGEXP (ionic.bundle.js:8890)
    at parseStringifyInterceptor (ionic.bundle.js:19022)
    at regularInterceptedExpression (ionic.bundle.js:21679)
    at Object.expressionInputWatch (ionic.bundle.js:21583)
    at Scope.$get.Scope.$digest (ionic.bundle.js:23062)
    at Scope.$get.Scope.$apply (ionic.bundle.js:23333)
    at done (ionic.bundle.js:18486)
    at completeRequest (ionic.bundle.js:18676)
    at XMLHttpRequest.requestLoaded (ionic.bundle.js:18617)

助けてください..
このコードは機能します:

$scope.pdfURL = "school.pdf";

そして、このコードを次のように変更します。

var baseUrl = 'http://192.168.1.105/sonschool/api/'; $http.get(baseUrl+'ambilDetailML/?id='+$stateParams.mlId).success(function(dataML) { //console.log(dataML); $scope.pdfURL = dataML.url_pdf; });

エラーの原因について何か考えはありますか?

4

1 に答える 1

0

外部リソースを使用できるようにするには、それらをホワイトリストに登録する必要があります (そのため、ローカルの「school.pdf」ファイルは機能し、IP を使用するファイルは機能しません)。これを行う方法に関するチュートリアルは、ここにあります。

しかし、すぐに、cordova-plugin-whitelistwww/index.htmlプラグインをインストールし、ファイルの他のメタ タグのすぐ下に以下を追加する必要があります。

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">

于 2015-07-13T06:05:53.273 に答える