2015-11-20 165 views
2

我正在使用Jquery 1.9.1。在發送具有陣列數據的關鍵字之一的Ajax數據時遇到問題。 這是我的代碼:

var obj = {"param1": 1, "param2": 2, "param3": [1, 2]}; 
$.ajax({ 
    url : url, 
    type: "POST", 
    data: obj, 
    success: function(){} 
}); 

但是,當我檢查了開發者工具的網絡面板頭。它顯示爲:

"param1": 1, 
"param2": 2, 
**"param3[]"**: [1] 
**"param3[]"**: [2] 

爲什麼它將[]添加到param3鍵?任何人有任何想法?

我以前用過$.ajax,這是第一次這樣發送。

+0

數組是如何作爲參數發送的 – Tomanow

+0

'data:JSON.stringify(obj),' – Tushar

+0

這是正常行爲,儘管聽起來您可能需要在AJAX請求中使用'traditional:true'屬性如果你不希望它以這種方式格式化。查看文檔以獲取更多信息 –

回答

1

這是完全正確的,這是數組如何通過請求發送的。 它是相同的HTML形式:

<input name="param3[]" value=1> 
<input name="param3[]" value=2> 

param3[]: [1], param3[]: [2]是隻爲參數3陣列另一個符號,在PHP後端這將是一個單可變$_POST['param3']與[1,2]作爲值。 (假設你使用PHP,對於其他語言,它將是一個類似但可能不同的變量)。

+0

儘管您是正確的,但您認爲OP使用的是PHP。這將導致C#MVC模型綁定器有適合。 –

+0

@RoryMcCrossan是的我假設PHP,更新了答案,謝謝! –