Javascript AngularJS:装饰$http
我有一个简单的控制器,比如:Javascript AngularJS:装饰$http,javascript,ajax,angularjs,Javascript,Ajax,Angularjs,我有一个简单的控制器,比如: function MyController($scope, $http) { ... $http.post(url).success(function(data) { console.log(data) }); } MyController.$inject = ['$scope', '$http']; 一切正常,但我有个问题。出于安全原因,返回的JSON用/***/注释。使用jQuery,我扩展了$.aja
function MyController($scope, $http) {
...
$http.post(url).success(function(data) {
console.log(data)
});
}
MyController.$inject = ['$scope', '$http'];
一切正常,但我有个问题。出于安全原因,返回的JSON用/***/注释。使用jQuery,我扩展了$.ajax对象,以删除这些注释,然后解析结果。我想用AngularJS实现同样的效果,并告诉$http从每个响应中删除注释。我想在我的整个应用程序中都这样做,并且避免键入总是一样的内容
有什么办法吗?您需要转换所有
$http
响应。我以前没有这样做过,但相关文档如下
转换请求和响应
可以使用transform转换请求和响应
功能。默认情况下,Angular应用以下变换:
请求转换:
- 如果请求配置对象的数据属性包含一个对象, 将其序列化为JSON格式李>
- 如果检测到XSRF前缀,请将其去除(请参阅安全注意事项 (下节)
- 如果检测到json响应,则使用 JSON解析器
阅读中的更多内容您可能希望从将JSON响应包装在
/***/
中切换到$http
已经支持的现成响应。相反,在JSON响应前面加上)]}',\n
e、 g.如果您的JSON响应是:
['one','two']
然后,不是返回:
/**['one','two']*/
只需返回:
)]}',
['one','two']
有关详细信息,请参阅中的JSON漏洞保护部分。很抱歉接受延迟。事实上,我遗漏了你提到的文档中的一个重要部分(我在问之前读过)。无论如何,现在我做了一个拦截器,由于你的提示,它可以转换我的请求。@Christian,你能把你的转换作为一个例子吗?谢谢。事实上我已经看到了。不幸的是,我无法如此轻松地更改它,因为我需要保持向后兼容。这将需要很多我目前没有的关注。这件事我以后再说。无论如何,我投了更高的票,因为其他人应该会看到你的答案是非常好的。