1

我的 ionic 函数之一出现以下错误:

 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-whitelist插件并将以下内容添加到您的www/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 回答