我正在尝试将以下数据发送到服务器,但在服务器端,我没有看到我发送的json参数。谁能告诉我我做错了什么?
下面你可以看到代码。
send_data_url = "change"
hash = $H({"blocks": [{"h": "2", "area": [{"width": "96%", "els": [{"title": "first", "mand": true}, {"title": "second", "mand": false}]}]}]});
var request_array_json = hash.toJSON();
new Ajax.Request(send_data_url, {
method: 'post',
parameters: request_array_json,
contentType: 'application/json;'
});
def change()
debugger
my_json = ActiveSupport::JSON.decode(params["_json"])
end
在控制器中,我看到params对象没有json参数 它只显示动作和控制器:
{"action"=>"change", "id"=>nil, "controller"=>"default/test"}
注意:我正在使用原型1.6 qnd rails 2.3.2。
答案 0 :(得分:0)
我找到了一个使用名为json_request的插件的解决方案。
为了使这个工作得很好,我还用一个可以发送复杂JSON对象的新类包装了Ajax.Request。示例代码:
Ajax.JSON = Class.create(Ajax.Request, {
initialize: function($super, url, options) {
options = options || {};
options.contentType = ‘application/x-www-form-urlencoded’;
options.postBody = Object.toJSON(options.object);
$super(url, options);
}
});
new Ajax.JSON(url, { object: myObject });