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

3

我在Ruby on Rails的视图文件中有一个按钮。

首先,当单击该按钮时,将进行Ajax调用,响应将返回一个JSON字符串。到目前为止,我已经完成了这个任务。

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

有没有什么方法可以解决这个问题?

1个回答

3
您的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调用设置超时,并在必要时让用户重新提交。您可以自行处理错误情况。

考虑这样一个场景:您是服务器'A'。它向其客户'B'提供一个脚本在B的网站上运行。B有一个客户'C',访问B的网站并尝试访问您给B的脚本。因此,B将首先验证C,并以JSON格式将用户凭据返回给A,然后执行Rails部分,并将C的数据保存在A的服务器上。这就是我正在尝试做的事情。希望您现在有一个清晰的想法。 - Rohit
明白了,已发布并编辑过。这符合你的要求吗? - shoebox639

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接