HTML POST 表单不同目标地址

2 投票
5 回答
3113 浏览
提问于 2025-04-16 19:16

我正在开发一个django网页应用,想要实现一个注册流程。在这个注册流程中,我当然需要一个表单,要求填写姓名、邮箱和密码。我希望能够将这个表单通过POST方式发送到两个不同的地方。一个地方是注册数据库,用来保存密码等信息,另一个地方是Emencia的新闻通讯应用。顺便提一下,Emencia只需要邮箱和姓名(姓名是可选的)。

那么,我该如何用一个表单,发送到两个地方,并且只提取表单中的部分数据,而不是全部呢?

谢谢!

5 个回答

0

这里有一个用jQuery实现的解决方案...

$("input:submit").click(function(e) {
    e.preventDefault();

    // javascript validation

    // run this if validation succeeds
    $.ajax({
        url: "url to emencia newsletter",
        type: 'post',
        data: "Email=" + $("#emailField").val() + "&Name=" + $("#nameField").val(),
        success: function(result) {
            // do stuff
            $('form').submit();
        }
    });
    // could also go here if you don't want the success callback -- $('form').submit();
});

事情是这样的,当你点击提交按钮时,e.preventDefault会告诉浏览器不要提交表单。接着,你会发送一个ajax请求去提交给emencia。如果请求成功了,原来的表单就会被提交。我不太确定你是需要把表单提交放在成功的回调里,还是直接放在ajax请求之后,我觉得其实都没什么太大关系。

0

你不能这样做。没有办法把一个表单同时发送到两个地方。

不过,你可以在你的注册脚本中发送一个HTTP请求给新闻通讯的脚本,比如可以用urllib2这个工具。

1

虽然我同意更好的方法是在服务器端处理这个问题,但我想更正一下,实际上是完全可能将同一个表单提交给不同的服务器端脚本。

你可以查看下面的页面,里面有相关的脚本和一些示例:如何创建一个多提交表单

这个方法在IE、Firefox和Chrome浏览器中都能正常工作。

撰写回答