【问题标题】:Pass a common data in all $http services in angularjs在 angularjs 中的所有 $http 服务中传递一个公共数据
【发布时间】:2021-08-03 10:59:54
【问题描述】:

我希望在所有 $http 调用中发送特定数据。我可以在某个地方定义它,这样我就不需要更改所有 $http 调用。 例如,

  $http({
      method: 'POST',
      url: serviceUrl,
      data: {
          "key1": data1,
          "key2": data2,
      }
  })

在我的所有 $http 调用中添加一个 data3 作为默认值。提前感谢您的回复。

【问题讨论】:

    标签: javascript angularjs angular-directive angularjs-http


    【解决方案1】:

    您可以使用$httpProvider 转换或拦截$http 对象

    var app = angular.module('test', []);
    app.config(function ($httpProvider) {
        $httpProvider.defaults.transformRequest = function(data){
            if (data === undefined) {
                return data;
            } 
            data.key3 = "This will always be set in a POST";
    
            return $.param(data);
        }
    });
    

    我从未尝试过像这样附加 POST 数据,但它应该可以工作。

    对于 GET 参数转换...

    $httpProvider.interceptors.push(function() {
      return {
       'request': function(config) {
           //config.params contains query/request parameters
           if (config.params){
             config.params.key3 = "Hello World"
           }
           return config;
        }
      };
    });
    

    【讨论】:

    • 谢谢。但是,如果同样的数据也必须作为参数在获取请求中发送?
    • @Mithunraj - 这对你有什么帮助?如果它是解决方案或有帮助,请投票和/或接受作为答案。谢谢
    猜你喜欢
    • 2018-07-17
    • 2021-10-24
    • 2019-01-12
    • 1970-01-01
    • 2014-06-19
    • 2017-03-16
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多