何が起こっているのかわかりません。私は答えを探すのに疲れ果てました。私はそれがprocessDataだと思っていましたが、その場合、ajaxは起動しません。私は一生、何が起こっているのか理解できません。
POST、ajax経由でデータを送信しようとしています。
ページ内のデータの設定方法により、実際にハッシュを作成して配列にプッシュできます。だから私は何かを持っています。
私が形成しているデータは次のようになります。
init func で、いくつかの変数を設定しました。
this.dataHolder = [];
私のプラグインのメソッドで:
_acceptData:function(){
var item = {};
item[this.schema.itemId] =
{
"Color" : this.schema.color,
"Size" : this.schema.size,
"Cost" : this.schema.cost
}
return item;
},
基本的に私は他のいくつかの方法などを持っていますが、要点は、上記のデータ構造が次の中に入れられるということです: this.dataHolder
データをダンプすると、そうあるべきように見えます。コード全体のさまざまなconsole.logは、データが適切に形成されていることなどを示しています..しかし、それを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 を試しましたが、まったく役に立ちませんでした。
編集: これは、.ajax メソッドに渡す前に、console.log で出力したコードです。 Console.log
[Object { itemid1={...}}, Object { itemid2={...}}, Object { itemid3={...}}]
これは投稿のパラメーターにあります: jquery.js (641行目) POST http://www.myurl/to/test
200 OK 79ms
jquery.js (7829行目)
ヘッダーPostResponseJSONCookie
Parametersapplication/x-www-form-urlencoded
undefined undefined
undefined undefined
undefined undefined