submiting一种形式中,以两个不同的网址没有Ajax(submiting one form t

2019-09-23 00:50发布

我怎么会提交一个表单到两个不同的位置,而阿贾克斯(跨域问题)

我在想的东西像下面。 我只将如何通过PARAMS?

   < form action="urlOne.com/something" method="post" onsubmit="postToUrl("urlTwo.com/something");">
        <input type="text" value="hello" name="hi"/>
        <input type="submit" value="submit">
    </form>

从这里拍摄功能>> 的JavaScript POST请求就像一个表单提交

function postToUrl(url, params)

        {
            var form = $('<form>');
            form.attr('action', url);
            form.attr('method', 'POST');

            var addParam = function(paramName, paramValue){
                var input = $('<input type="hidden">');
                input.attr({ 'id':     paramName,
                             'name':   paramName,
                             'value':  paramValue });
                form.append(input);
            };

            // Params is an Array.
            if(params instanceof Array){
                for(var i=0; i<params.length; i++){
                    addParam(i, params[i]);
                }
            }

            // Params is an Associative array or Object.
            if(params instanceof Object){
                for(var key in params){
                    addParam(key, params[key]);
                }
            }

            // Submit the form, then remove it from the page
            form.appendTo(document.body);
            form.submit();
            form.remove();
        }

谢谢。

Answer 1:

你只能在一个窗口中一次后一种形式。 如果您尝试发布两种形式,一种后会阻止对方。

该解决方案将是后两种形式,以不同的窗口。 您可以设置第一种形式的目标张贴在网页或新窗口的iframe:

form.attr('target', '_blank');

通过这种方式,两个职位将装载在不同的窗口,也不会阻止对方。



Answer 2:

如果你只想做一个“看不见”的帖子到另一个URL ......在这种情况下,网址是workout.php

<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(function() {
  $('form').submit(function(data) {
    $.post('workout.php', $(this).serialize());
  });
});
</script>

<form action="urlOne.com/something" method="post">
        <input type="text" value="hello" name="hi"/>
        <input type="submit" value="submit">
</form>


Answer 3:

如果你使用代理服务器端可以使用jQuery的跨域AJAX。

要么:

使用Apache的mod_rewrite或mod_proxy的从服务器请求传递到其他一些服务器。 在您的客户端代码,你只是做好像它实际上是你的服务器上的要求 - 没有浏览器的问题这一点。 阿帕奇然后做它的神奇和提出请求到其它服务器为您服务。

这里是一个链接PHP来实现这一目标: http://developer.yahoo.com/javascript/howto-proxy.html#phpproxy



文章来源: submiting one form to two different URLs without ajax