【问题标题】:AngularJS $http posting object containing array strange behaviourAngularJS $http 发布对象包含数组奇怪的行为
【发布时间】:2014-08-28 03:39:10
【问题描述】:

我有一个使用 $http 发布参数的函数。我不明白的是 filters 参数包含一个数组。但是,服务器将此数组解释为数组中每个项目的键/值对。为什么?这是 AngularJS 还是服务器端问题?

var updateCandidates = function (slot) {
    console.log(slot.filters)
    $http({method: 'POST', url: '/api/slot_candidates', params: {
        type: slot.type,
        start_date: slot.start_date,
        end_date: slot.end_date,
        filters: slot.filters
    }}).success(function (response) {
        return response
    }).error(function (response) {
        $rootScope.modalAlert('error', 'Something happened', true)
    })
}

# request.params.  Note the duplicate 'filters' key

NestedMultiDict([(u'end_date', u'2014-12-30T14:00:00'), (u'filters', u'{"operator":"contains","group":"program","type":"unicode","name":"title","query":"joan of arc"}'), (u'filters', u'{"operator":"contains","group":"program","type":"unicode","name":"aspect_ratio","query":"16"}'), (u'start_date', u'2014-08-25T00:00:00'), (u'type', u'Program')])

【问题讨论】:

    标签: javascript python json angularjs


    【解决方案1】:

    很久以前我也有这个问题,看来这是angular $http post的行为,你不能直接用数组发布参数,我认为用JSON发布它们是一个好方法,

    var updateCandidates = function (slot) {
    console.log(slot.filters)
    var data = {
        type: slot.type,
        start_date: slot.start_date,
        end_date: slot.end_date,
        filters: slot.filters
    };
    
    $http({
      method: 'POST', 
      url: '/api/slot_candidates',
      responseType  : "json",
      params: JSON.stringify(data),
      headers:{
              'Content-Type':'application/json'
            },
      }).success(function (response) {
        return response
      }).error(function (response) {
        $rootScope.modalAlert('error', 'Something happened', true)
      })
    }
    

    但请确保您的服务器也支持 json 数据。

    【讨论】:

      猜你喜欢
      • 2012-12-20
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 2012-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多