javascript 角度 URL 'trustAsResourceUrl' 不起作用

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/24911626/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-28 03:33:45  来源:igfitidea点击:

Angular URL 'trustAsResourceUrl' not working

javascriptangularjs

提问by Dominick Piganell

I'm using angular-file-upload.jsand uploading an image. When the upload is successful, it returns a URL to where the image is hosted, which is hosted as a blob on Azure. The upload is successful, and the URL is returned correctly, however when I push this URL on an "images" stack to view this image in the browser, it won't work properly. For example, the URL I get back looks like this:

我正在使用angular-file-upload.js并上传图像。上传成功后,它会返回图像托管位置的 URL,该 URL 在 Azure 上作为 blob 托管。上传成功,正确返回了URL,但是当我将此URL推送到“图像”堆栈以在浏览器中查看此图像时,它将无法正常工作。例如,我返回的 URL 如下所示:

"https://searlesmedia.blob.core.windows.net/event-images/4_slide-archive.jpg"

Controller.js

控制器.js

uploader.onSuccessItem = function (fileItem, response, status, headers) {
    console.info('onSuccessItem', fileItem, response, status, headers);
    $scope.uploadcomplete = "Upload Successful";
    var url = $sce.trustAsResourceUrl(response);
    $scope.images.push(url);
};

Html

html

<div class="row" data-ng-repeat="image in images">
    <img ng-src="{{image}}" class="img-responsive" />
</div>

回答by sylwester

Hi it looks like you miss something please see here: http://plnkr.co/edit/1PpscI4dOMYpYRf6fbUS?p=preview

嗨,你好像错过了什么,请看这里:http: //plnkr.co/edit/1PpscI4dOMYpYRf6fbUS?p=preview

angular.module('mySceApp', ['ngSanitize'])
  .controller('AppController', ['$http', '$scope', '$sce',
    function($http, $scope, $sce) {

      $scope.image = {};
      $http.get("test_data.json").success(function(data) {
        console.log(data.url);
        // $scope.userComments = userComments;

        $scope.image.url = $sce.trustAsResourceUrl(data.url);
      });

    }
  ]);

HTML:

HTML:

<!doctype html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>Example - example-example64-production</title>


  <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.16/angular.min.js"></script>
  <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.16/angular-sanitize.js"></script>
  <script src="script.js"></script>



</head>

<body ng-app="mySceApp">
  <div ng-controller="AppController as myCtrl">



    <div class="well">

      <b>{{userComments.name}}</b>:

      <img ng-src="{{image.url}}">
      <br>

    </div>
  </div>
</body>

</html>