原型Ajax请求参数为嵌套json
Prototype. Ajax request parameters as nested json
我想发送带有特殊参数的请求,如下面列出的示例所示。但不幸的是,这个脚本只发送id。我如何传输嵌套的JSON?
new Ajax.Request("/specials/update_users_specials", {
method: 'post',
parameters: {
id: '1',
data: {
data_one: '2',
data_two: '3'
}
},
onSuccess:function(){}
});
UPD
我试过
var parameters = {};
$A(rows).each(function(d){
parameters[d.dataset.userId] = d.value;
});
params={};
params['data']=parameters;
params['part']=45;
不要工作。我试过
var parameters_json = eval("(" +JSON.stringify(params) + ")");
不要工作。现在我试过
$H({ id: '1', data: { data_one: '2', data_two: '3' } })
同样的结果。
UPD。
我正在使用rails,我的解决方案是:
var parameters = {};
$A(rows).each(function(d){
parameters['users[' + d.dataset.userId + ']'] = d.value;
});
parameters['part_id']=id;
根据手册,http://www.prototypejs.org/api/ajax/options:
parameters"请求的参数,将被编码到"get"方法的URL中,或编码到其他方法的请求正文中。这可以作为URL编码的字符串提供,也可以作为任何哈希兼容对象(基本上是任何对象)提供,属性表示参数。"
关于Hash,http://www.prototypejs.org/api/hash:
有两种方法可以构造Hash实例:第一种是使用新关键字进行常规JavaScript对象实例化,第二种是使用$H函数。将一个普通的JavaScript对象或Hash传递给它们中的任何一个都会克隆它,从而保持原始对象的完整性。
所以,从JSON中创建一个Hash,你应该会做得很好。
更新
甚至更多来自他们的页面(我自己使用原型已经很久了)http://www.prototypejs.org/learn/introduction-to-ajax
new Ajax.Request('/some_url', {
method: 'get',
parameters: {company: 'example', limit: 12}
});
参数以散列(首选)或由与号分隔的键值对字符串的形式传入(如company=example&limit=12)。
因此,它不理解多维散列,只理解键值对。
然而,我确实在谷歌小组中发现了这段代码,可能会对你有所帮助。
相关文章:
- 访问嵌套JSON对象的键,其中键是动态的
- 从多维嵌套json数组创建下拉列表
- 带嵌套json的下划线js查找
- 返回嵌套JSON中包含特定键的所有值
- 嵌套JSON到平面HTML表
- 原型Ajax请求参数为嵌套json
- 从对象数组中动态创建嵌套json
- ExtJS 4.1-检索嵌套JSON的hasOne信息
- 更新嵌套json Angularjs中的对象
- 访问嵌套 json 对象的属性将返回未定义
- 如何解析没有键的嵌套json's的javascript
- 显示嵌套json集合的主干
- 列表中呈现的骨干嵌套json对象
- 如何使用promise来反规范化嵌套json
- 正在读取嵌套json,jquery返回undefined
- Ionic/Angular:如何在嵌套json中导航
- 如何访问AngularJs中的嵌套Json对象
- 使用Javascript查找并更新嵌套JSON数组和对象中的所有键值
- 如何获取给定表单详细信息的嵌套json对象
- 通过Javascript中的递归迭代映射嵌套JSON