Javascript ajaxpost网上的数据格式
在我的AJAX post调用中,我希望在Chrome网络标题详细信息中查看数据时,数据的格式是这样的——这正是服务器端所期望的。问题是:我如何更新下面的JS以格式化如下数据:Javascript ajaxpost网上的数据格式,javascript,jquery,ajax,asp.net-mvc-4,Javascript,Jquery,Ajax,Asp.net Mvc 4,在我的AJAX post调用中,我希望在Chrome网络标题详细信息中查看数据时,数据的格式是这样的——这正是服务器端所期望的。问题是:我如何更新下面的JS以格式化如下数据: percentages[0].Id:7 percentages[0].Percentage:26.1 percentages[1].Id:8 percentages[1].Percentage:20.3 但是,数据当前的格式如下 percentages[0][Id]:7 percentages[0][Percentage
percentages[0].Id:7
percentages[0].Percentage:26.1
percentages[1].Id:8
percentages[1].Percentage:20.3
但是,数据当前的格式如下
percentages[0][Id]:7
percentages[0][Percentage]:26.1
percentages[1][Id]:8
percentages[1][Percentage]:20.3
在通过AJAX发送数据之前,我目前正在JS中格式化数据
var params = {};
var dict = [];
for (var idx in data) {
var item = {
Id: idx,
Percentage: data[idx]
};
dict.push(item);
}
params['percentages'] = dict;
其中数据变量在写入Chrome控制台时包含如下数据:
Object {7: "26.1", 8: "20.3"}
提前谢谢
编辑:
回应@Bogangles的请求:我正在使用.NET,我试图填充的结构是:
IEnumerable<PercentageViewModel> percentages
这就是允许正确填充服务器端数据结构的答案
var i = 0;
for (var idx in data) {
params['percentages[' + i + '].Id'] = data[idx].Id;
params['percentages[' + i + '].Percentage'] = data[idx].Percentage;
i++;
}
我不确定这里有什么区别。你能从服务器语言的角度给出一个你想要的数据的例子吗?我认为这只是控制台中数据格式的问题。从语义上讲,两者没有区别。您应该查看real traffic Network选项卡,类似于'show raw'Ahh,您不与JSON对象通信,而是使用www form urlencoded,对吗?请求的内容类型是:application/x-www-form-urlencoded;字符集=UTF-8
var i = 0;
for (var idx in data) {
params['percentages[' + i + '].Id'] = data[idx].Id;
params['percentages[' + i + '].Percentage'] = data[idx].Percentage;
i++;
}