我有一个简单的控制器,如:
function MyController($scope,$http) { ... $http.post(url).success(function(data) { console.log(data) }); } MyController.$inject = ['$scope','$http'];
一切都按预期工作,但我有一个问题.出于安全原因,返回的JSON用/ ** * /注释.使用jQuery,我扩展了$.ajax对象以删除此注释,然后解析结果.我想用AngularJS实现同样的目的,并以某种方式告诉$http来删除每个响应中的注释.我想为我的整个应用程序执行此操作,并避免键入始终相同.
我有什么想法可以做到这一点?
解决方法
您将要转换所有$http响应.我之前没有这样做,但相关文档如下.
Transforming Requests and Responses
Both requests and responses can be transformed using transform
functions. By default,Angular applies these transformations:Request transformations:
- if the data property of the request config object contains an object,
serialize it into JSON format.Response transformations:
- if XSRF prefix is detected,strip it (see Security Considerations
section below)- if json response is detected,deserialize it using a
JSON parserTo override these transformation locally,specify
transform functions as transformRequest and/or transformResponse
properties of the config object. To globally override the default
transforms,override the $httpProvider.defaults.transformRequest and
$httpProvider.defaults.transformResponse properties of the
$httpProvider.