jQuery和我传递给ajax的数据完全不是我想要的

时间:2012-11-04 02:48:06

标签: javascript jquery ajax

我不确定发生了什么。我已经筋疲力尽地寻找答案了。我认为这是processData,但在这种情况下ajax不会触发。我不能为我的生活找出正在发生的事情。

我正在尝试通过POST,ajax发送数据。

由于我的数据设置方式,在页面中,我实际上可以创建一个哈希并将其推送到一个数组中。所以我有类似的东西。

我正在形成的数据如下:

在我的init函数中,我设置了一些变量。

this.dataHolder = [];

在我的插件中的方法中:

            _acceptData:function(){
                var item = {};
                item[this.schema.itemId] =
                          {
                             "Color" : this.schema.color,
                             "Size" : this.schema.size,
                              "Cost"    : this.schema.cost

                          }
               return item;
            },

基本上我还有其他一些方法,但是jist是上面的数据结构被放入:this.dataHolder

当我转储数据时,看起来应该如此。代码中的各种console.logs告诉我数据格式正确等等。但是当我将它传递给ajax数据时......它确实很不错。

当我有我的ajax时...... ala:

 var self = this;
.ajax({
  type: "POST",
  data : {matchedItems : self.dataHolder},
  dataType: json,
  url : /some/path/

我尝试了很多不同的东西,并且在所有情况下数据都是未定义的(当我发布时)或者它的格式很奇怪,如:(在日志中)

  $VAR1 = {

      'matchedItems[0][itemid1][Color]' => 'Blue',
      'matchedItems[0][itemid1][Size]' => '11',
      'matchedItems[0][itemid1][Cost]' => '33.90',
      'matchedItems[1][itemid2][Color][]' => 'Silver',
      'matchedItems[1][itemid2][Size]' => '13',
      'matchedItems[1][itemid2][Cost]' => '44',
      'matchedItems[2][itemid3][Color][]' => 'Red',
      'matchedItems[2][itemid3][Size]' => '9',
      'matchedItems[2][itemid3][Cost]' => '23'
    };

或不同的排列

data : MatchedItems : {self.dataHolder}

data : {MatchedItems : {self.dataHolder}}

等......没关系,POST总是会得到一些奇怪的格式。

这是我发送它时的样子以及它们如何接收它。

matchedIeds = {
          itemId1 :
            {
              Color : Red,
              Size : 11,
              Cost    : 44
            },
          itemId2 :
            {
              Color : Blue,
              Size : 8,
              Cost    : 12
            },
          itemId3 :
            {
              Color : Blue,
              Size : 19,
              Cost    : 88.09
            }
          }

我的意思是,我正在设置我的数据,所以我看不出有什么问题。

注意:我尝试过processData:false,但这根本没用。

修改 这是代码console.log在我将它传递给.ajax方法之前写出来的。 的 CONSOLE.LOG

[Object { itemid1={...}}, Object { itemid2={...}}, Object { itemid3={...}}]

这里是帖子的参数:     jquery.js(第641行) 发布http://www.myurl/to/test

200 OK         79ms
jquery.js(第7829行)

HeadersPostResponseJSONCookies

Parametersapplication/x-www-form-urlencoded
undefined   undefined
undefined   undefined
undefined   undefined

0 个答案:

没有答案