微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – AngularJS:装饰$http

我有一个简单的控制器,如:
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 parser

To 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.

阅读$http service documentation.中的更多内容

原文地址:https://www.jb51.cc/js/150824.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐