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

时间:2010-10-26 14:06:35

标签: javascript ruby-on-rails ajax json

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

首先,当单击该按钮时,将进行Ajax调用,该调用将作为响应提供JSON字符串。到目前为止,我完成了这项任务。

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

有什么方法吗?

1 个答案:

答案 0 :(得分: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调用设置超时,并在必要时让用户重新提交。您可以随意处理错误案例。