Javascript 角度不安全url

Javascript 角度不安全url,javascript,angularjs,angularjs-directive,jcrop,Javascript,Angularjs,Angularjs Directive,Jcrop,我使用此指令将jCrop与Angular一起使用: 当我为src加载一个值时,出现以下错误: 无法插入:{{profileImg}}错误:[$sce:insteUrl] 然后它将我链接到一个页面,上面写着: $SCEDegate策略不允许从url加载资源 我的html是这样的: <img-cropped src={{profileImg}} selected='selected(cords)'/> 即使使用trustAsUrl,它也会抛出相同的错误 可能是因为我正试图从本地ngin

我使用此指令将jCrop与Angular一起使用:

当我为
src
加载一个值时,出现以下错误:

无法插入:{{profileImg}}错误:[$sce:insteUrl]

然后它将我链接到一个页面,上面写着:

$SCEDegate策略不允许从url加载资源

我的html是这样的:

<img-cropped src={{profileImg}} selected='selected(cords)'/>
即使使用
trustAsUrl
,它也会抛出相同的错误

可能是因为我正试图从本地nginx服务器通过它进行连接

编辑2: 我把它移到了S3托管,它成功了。我试图链接到的图像也在S3上。 我将它移动到一个EC2实例上的ApacheWeb服务器上,但它不起作用


我正在使用所有的答案,
ng src
而不是
src
$sce.trustAsUrl(url)
,以及
$compileProvider

有时阅读文档是件好事

这是白名单所有blob和数据的一种替代方法:仅针对
标记的image/*url,但还有其他方法可以解决此问题,如生成url>将其传递到一个sce函数中,它将被白名单。就像@NuclearGhost所说的


如果要将url添加为可信源,可以使用
ng.$sce
服务中的
trustAsUrl()
方法


以下是。

我最后用
$sceProvider.enabled(false)

关闭了它。我试着键入
ng.$sce.trustAsUrl(url)
,这告诉我
ng
没有定义。你需要将
$sce
作为一项服务注入到你的控制器或指令中,在那里进行http呼叫。然后只需从
$sce.trustAsUrl(url)
访问它,您是否在img上尝试了ng src而不是src?它应该有助于防止类似的问题。硬编码可以工作的事实告诉我,您可能应该使用ng src来代替。@aaronfrost我只是尝试了一下,但没有成功。我在您设置url的控制器中遇到相同的错误,您需要注入$sce服务并使用它。不确定你在做什么。@aaronfrost我发布了我的控制器代码,看起来好像我注入了
$sce
,我认为这不是个好主意。您可以使用
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;
    });
};
});
app.config(["$compileProvider" function($compileProvider) {

    $compileProvider.imgSrcSanitizationWhitelist(/^\s*(blob:|data:image)/);

}]);