表单操作URL与页面URL不同

时间:2013-03-06 22:22:15

标签: php javascript jquery ajax

问题: 我有一个表单,其形式action =“url”不同于表单所在的页面URL。

page URL = www.page.com
form action =“http://www.differentserver.com

问题: 发布表单时,它会导航到表单操作URL。

问题: 什么是仍然POST到操作URL但使用jquery / ajax保留在Form页面上的最佳方法

此外,操作URL会回发一个xml,说明潜在客户是否通过。

4 个答案:

答案 0 :(得分:1)

您无法使用AJAX将数据提交到其他域。

但是你可以使用旧的“hack”:

<form action="http://www.differentserver.com/" method="post" target="hiddeniframe">
    ...
</form>
<iframe style="display:none" name="hiddeniframe"></iframe>

这会将表单提交给其他域,但不会影响当前文档。

答案 1 :(得分:0)

您可以随时将其发布到隐藏的Iframe target='framename'并挂钩到Iframe的ONLOAD事件中,以检测它何时完成。

答案 2 :(得分:0)

在differentserver.com之后重定向或使用curl执行操作

答案 3 :(得分:0)

Jquery does this well

发布整个表单

//Jquery Code
$.post("test.php", $("#form_name").serialize(), function(result){
 // return 
 var aa = result;

});

发布表单的特定部分

//Jquery Code
 /* get some values from elements on the page: */
 var $form = $( this ),
  term = $form.find( 'input[name="s"]' ).val(),
  url = $form.attr( 'action' );

 /* Send the data using post */
 var posting = $.post( url, { s: term } );

 /* Put the results in a div */
 posting.done(function( data ) {
   var content = $( data ).find( '#content' );
  $( "#result" ).empty().append( content );
   });

如果您使用“提交”按钮,则会停止正常发布表单。

 /* stop form from submitting normally */
  event.preventDefault();