Angulaire d'insécurité url
Je suis en utilisant cette directive à utiliser jCrop Angulaire: http://plnkr.co/edit/Z2IQX8s9UK6wQ1hS4asz?p=preview
Lorsque je charge à une valeur de src
, j'obtiens cette erreur:
Ne peut pas interpoler: {{profileImg}} Erreur: [$sce:insecurl]
Puis il me lie à une page qui dit ceci:
Bloqué le chargement de la ressource à partir de l'url ne permet pas d' $sceDelegate politique.
Mon code html est: est-ce
<img-cropped src={{profileImg}} selected='selected(cords)'/>
Et cette erreur se produit lorsque je change $scope.profileImg
à l'url de mon image.
Je suis un lien vers S3, où j'obtiens la valeur de profileImg
. - Je faire confiance à cette source, alors comment puis-je dire angulaire que cette source est suffisamment confiance pour obtenir cette directive de travail?
Si j'ai coder en dur le src
à mon image, je n'ai pas ce problème.
EDIT:
Je suis en train de faire confiance à l'url $sce.
Mon contrôleur:
cmsApp.controller('PresentationCtrl',function($scope, $upload, all, $sce){
var socket = io.connect('https://xxxxxx.xxxxxxxxxxxxxx.xxx:3000');
$scope.profileImg="";
$scope.uploadProfilePic = function(){
socket.removeAllListeners();
console.log(file3);
var url = 'https://xxxxxxx.xxxxxxxxxx.xxx:3000/uploadProfile?tenant=xxxxx';
$scope.upload = $upload.upload({
url:url,
data:{myObj:'test1'},
file:file3
}).progress(function(evt){
console.log('percent: ' + parseInt(100.0 * evt.loaded / evt.total));
}).success(function(data,status,headers,config){
$sce.trustAsUrl(data);
$scope.profileImg = data;
});
};
});
Et même avec le trustAsUrl
, il jette la même erreur.
Il serait peut-être que je vais essayer de vous connecter à partir de mon local serveur nginx?
EDIT2:
Je l'ai déplacé à S3 hébergement, et cela a fonctionné. L'image que je suis en train de lien est aussi sur S3.
Je l'ai déplacé vers un serveur web Apache sur une instance EC2, et ça ne fonctionne pas.
Je suis en utilisant toutes les réponses, ng-src
au lieu de src
, $sce.trustAsUrl(url)
, et la $compileProvider
J'ai juste essayé, et ça ne fonctionne pas. Je reçois le même errrors
Dans votre contrôleur où vous êtes paramètre de l'url, vous avez besoin d'injecter de l' $sce service, et de l'utiliser. Vous ne savez pas ce qui ne va pas avec ce que vous faites.
J'ai posté mon code du contrôleur, et il semble que j'ai injecté
$sce
OriginalL'auteur Houseman | 2014-02-12
Vous devez vous connecter pour publier un commentaire.
parfois il est bon de lire les docs sur $sce
C'est une alternative à la liste blanche de tous les blob et de données:image/* url pour tout le
<img>
tag, mais il existe une autre façon que vous pouvez résoudre ce comme générer une url > la passer dans un de la sec à la fonction, et il sera dans la liste blanche. comme @NuclearGhost ditOriginalL'auteur Endless
Si vous souhaitez ajouter l'url comme une source fiable, vous pouvez utiliser le
trustAsUrl()
méthode deng.$sce
serviceVoici la angulaire de la documentation pour le service.
ng.$sce.trustAsUrl(url)
et qui m'a dit queng
n'a pas été défini.Vous avez besoin d'injecter
$sce
en tant que service dans votre contrôleur ou de la directive, lorsque vous faites l'appel http. Puis juste y accéder à partir de$sce.trustAsUrl(url)
J'ai essayé, et ça ne fonctionne pas. Je vais poster mon contrôleur
OriginalL'auteur Mark Meyer
J'ai fini juste de l'éteindre avec
$sceProvider.enabled(false)
.$sceDelegateProvider
OriginalL'auteur Houseman