我正在尝试使用AngularJS从我的Restful api symfony中检索数据,但是我收到此错误“错误:[$ http:badreq] Http请求配置网址必须是字符串或$ sce可信对象”。
这是我的Symfony控制器:
$agent = $this->get('doctrine')
->getRepository('CERAgentBundle:Agent', 'agent')
->findByCode($employeeID);
$session = new Session();
$session->set('agent', $agent);
$formatted = [
'civilite' => $agent[0]->getCivilite(),
'prenom' => $agent[0]->getPrenom(),
'nom' => $agent[0]->getNom(),
];
return $formatted;
}
给我: result
这是我的AngularJS控制器:
angular.module('frontProfilDeveloppementApp')
.controller('AboutCtrl', function ($scope, $http, $sce){
var url = $sce.trustAsResourceUrl('http://localhost:8000/index');
$http.get({
method:'GET',
url:url})
.success(function (data) {
$scope.result = data;
});
});
我的角度观点:
<div ng-app="frontProfilDeveloppementApp" ng-controller="AboutCtrl">
<p>Today's welcome message is:</p>
<h1>{{result.nom}}</h1>
感谢您的帮助
答案 0 :(得分:0)
查看SCE的文档,您似乎并未将其用于其预期用途。 SCE更多的是将原始html / css从受信任的源呈现到DOM中,而不必将其解析为漏洞,因为它被视为可信任的。对于URL,您可以使用SCE将其安全地绑定到模板中的某个位置,但是您的用例似乎不合适,为什么不使用字符串?
如果有的话,您可能希望将SCE用于检索的实际内容,而不是用于检索内容本身的URL。
答案 1 :(得分:0)
我不确定您使用的是什么版本的Angular,但已弃用成功且您的参数对$ http.get请求无效。你的代码应该是这样的:
// I didn't actually test this but it should work like this, or similar.
//Put the method in your domain object itself and it will be called automatically.
def afterInsert(){
this.refresh()
}