代码之家  ›  专栏  ›  技术社区  ›  Simon Keep

是否可以有多个目标页面进行跨页面发布?

  •  2
  • Simon Keep  · 技术社区  · 17 年前

    我有一个网页,它使用跨页面发布来发布到不同的目标页面。

    是否可以以某种方式在客户端上动态更改跨页面发布目标?

    通过查看源html,我想可以使用jquery操作submit按钮上的回发目标,但这似乎有点像黑客。

    我的备选方案是什么,重写页面以删除跨页面发布,并在会话中通过数据进行响应重定向?

    2 回复  |  直到 17 年前
        1
  •  2
  •   defines    17 年前

    是的,你当然可以改变主意 action 形式的变化。我会教你怎么做。

    <form name="aformiam" method="post" action="/somewhere/to/go.php">
    

    <input type="submit" value="Send Form" onClick="return submitForm();" />
    

    最后是JavaScript函数,用于实际更改表单操作并提交表单。

    function submitForm() {
      // do anything here you need to determine which URL to post to
      // I am just making an example here
      var targetURL = '/some/url/to/post.php';
    
      // now we will change the form's action
      document.aformiam.action = targetURL;
    
      // finally, submit the form by returning true
      return true;
    }
    

    请注意,在我们返回true的最后一步中,由于输入元素的类型为 submit 该功能由 onClick button 键入输入元素或 a img

    document.aformiam.submit();
    

    此解决方案将用于更改操作并提交给 仅有一个的 网址。如果需要一次发布到多个URL,则必须使用其他方法,如XMLHttpRequest。如果是这样的话,请发表一条评论,说明是这样,我将提供一个例子。

        2
  •  1
  •   drdaeman    17 年前

    你可以试着换一下房间 action 在表单提交之前,使用JavaScript创建表单的属性。

    不幸的是,大多数浏览器不支持后期重定向。即使 RFC notes :

    RFC 1945和RFC 2068指定不允许客户端 更改重定向请求的方法。然而,大多数 响应,对位置字段值执行GET,不管 原始请求方法的。状态代码303和307已被删除 已添加用于希望明确说明 客户会有什么样的反应。

    因此,IMHO,选择仅限于JavaScript或JavaScript 从服务器修改或重新发布数据(服务器接受发布的数据,对其进行分析并自行执行发布)。

    在会话中存储数据(或只是在POST中返回数据),然后从客户端重新发布数据,需要JavaScript支持(自动提交表单)或让用户再次单击“提交”按钮。不过,您可以考虑使用此方法作为回退。

    默认 行动 指向您的回退脚本。如果修改成功