将JSON字符串作为参数发送到动作

将JSON字符串作为参数发送到动作

问题描述:

我的Ruby on Rails视图文件上有一个按钮。将JSON字符串作为参数发送到动作

首先,当点击按钮时,会发出一个Ajax调用,它会响应给出一个JSON字符串。到目前为止,我已完成了这项任务。

这里是我卡住的地方:该按钮还将我重定向到同一控制器的另一个动作。现在我想将JavaScript接收的JSON字符串作为参数发送到该操作。

有没有办法解决这个问题?

你的Ajax调用应该是这个样子:

... doing stuff before ... 

$.ajax(
    url:'url-to-script', 
    success: function(data) { 
    var json = JSON.parse(data); 
    $('#hidden-field').val(json); // set a hidden field in your form 
    $('#from-id').submit(); 
    } 
); 

$('#submit-button').attr('disabled', 'true'); // disable the button 
// set some spinny animation to notify the user that you are waiting. 
// time out after a while if you don't get a response 

... doing stuff after ... 

基本上我们关火AJAX事件,禁用按钮,并通知您在等待用户。当调用返回时,您的回调方法将表单提交给rails。您也可以为ajax调用设置超时时间,并在必要时让用户重新提交。无论你喜欢,你都可以处理错误情况。

+0

考虑一个场景:您是服务器'A'。它给它的客户'B'提供一个脚本在B的站点上运行。 B有一个客户端'C',它访问B的站点并尝试访问你给B的脚本。因此B将首先验证C并以JSON格式将用户凭证提供给A,然后rails部分将被执行,C数据将保存在A的服务器上。这是有点我想要做的。希望你现在有一个清晰的想法。 – Rohit 2010-10-26 14:24:18

+0

明白了,张贴编辑。这与你正在寻找的东西接近吗? – shoebox639 2010-10-26 14:35:26