2015-11-20 37 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,更新了答案,谢谢! –