从iframe发送POST请求,警告父窗口href

时间:2014-05-25 14:18:57

标签: javascript jquery ruby-on-rails

我正在构建一个Rails应用程序,但客户端也有一个wordpress组件。

我希望能够允许用户从其中一个wordpress页面注册。

为此,首先我将Rails中的x-iframe头设置为ALLOWALL。

现在,注册过程有效,但是在用户发出帖子请求之后,我希望基本窗口网址更改为响应的任何内容。

目前,我正在尝试做这样的事情 - >

  jQuery(function($) {
    var timesRun = 0;
    var original = "http://localhost:3000/mainsignup"

    $('#sign-up-iframe').load(function(e){
      timesRun += 1
      if (timesRun != 1) {
        $(e.currentTarget).addClass('hidden')
        window.location.href = "http://localhost:3000/signup?iframe_error=catch"
      }
    });
  });

这将是如果在这个iframe上调用load事件两次(可能是因为用户点击提交),我更新顶部窗口的位置以转到rails signup_path。

On Rails'结束,如果注册成功,signup_path会自动重定向到用户的个人资料。否则,它呈现注册视图,并在其中我有一个通用的错误消息,基于是否存在params [:iframe_error]。

这似乎是错误的,并且用户第一次没有收到特定的错误消息。有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

上述解决方案似乎是迄今为止我发现的最佳解决方案 -

 jQuery(function($) {
    var timesRun = 0;
    var original = "http://localhost:3000/mainsignup"

    $('#sign-up-iframe').load(function(e){
      timesRun += 1
      if (timesRun != 1) {
        $(e.currentTarget).addClass('hidden')
        window.location.href = "http://localhost:3000/signup?iframe_error=catch"
      }
    });
  });

您让Rails处理正确的重定向,并在第二次加载iframe后重定向该人