gpt4 book ai didi

javascript - 原型(prototype)。 Ajax 请求参数作为嵌套的 json

转载 作者:行者123 更新时间:2023-11-30 18:19:56 25 4
gpt4 key购买 nike

我想发送带有特殊参数的请求,如下例所示。但不幸的是,这个脚本只发送 id。如何传输嵌套的 JSON?

new Ajax.Request("/specials/update_users_specials", {
method: 'post',
parameters: {
id: '1',
data: {
data_one: '2',
data_two: '3'
}
},
onSuccess:function(){}
});

更新。
我试过了

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' } })

同样的结果。

更新。

我正在使用 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 '' The parameters for the request, which will be encoded into the URL for a 'get' method, or into the request body for the other methods. This can be provided either as a URL-encoded string or as any Hash-compatible object (basically anything), with properties representing parameters."

关于哈希,http://www.prototypejs.org/api/hash :

There are two ways to construct a Hash instance: the first is regular JavaScript object instantiation with the new keyword, and the second is using the $H function. Passing a plain JavaScript object or a Hash to any of them would clone it, keeping your original object intact.

因此,从 JSON 中创建一个哈希,你应该会很好。

更新

更多来自他们的页面(很久以前我自己使用过原型(prototype))http://www.prototypejs.org/learn/introduction-to-ajax

new Ajax.Request('/some_url', {
method: 'get',
parameters: {company: 'example', limit: 12}
});

Parameters are passed in as a hash (preferred) or a string of key-value pairs separated by ampersands (like company=example&limit=12).

因此它不理解多维哈希,只理解键值对。

不过,我确实找到了this snippet of code at Google groups这可能会对您有所帮助。

关于javascript - 原型(prototype)。 Ajax 请求参数作为嵌套的 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12319644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com