提交表单而不进行重定向

20 浏览
0 Comments

提交表单而不进行重定向

我想将一个表单提交到另一个网站的action页面,但我不想被重定向到action页面。我尝试了一切,但都没有成功,我听说过ajax可以完成这个工作,有人可以给我一些例子吗?

我想要的是:

  • 我想提交表单,但不要被重定向。
  • 在我被重定向到action页面时,我希望被重定向回原始页面。

我的代码:

0
0 Comments

问题:如何在不重定向的情况下提交表单?

原因:可能出现以下情况:AJAX(Asynchronous JavaScript and XML)不起作用,需要提交表单但不希望页面重定向。

解决方法:可以尝试使用隐藏的iframe进行重定向。

代码如下:



  

隐藏的iframe是一种替代AJAX的有用方法,特别适用于隐形CSRF(Cross-Site Request Forgery)攻击。

0
0 Comments

在这段代码中,我们使用了jQuery的submit()方法来捕获表单的提交事件。在事件处理函数中,我们使用serialize()方法来将表单数据序列化为一个字符串。然后,我们使用$.post()方法发送POST请求到指定的路径,并将序列化的表单数据作为参数传递。在请求成功后的回调函数中,我们可以执行一些操作。

然而,这段代码中存在一个问题:它没有阻止表单的默认提交行为。在表单提交后,浏览器会自动刷新页面或跳转到新页面。如果我们希望在提交表单后不刷新页面或不跳转到新页面,我们需要阻止默认的表单提交行为。

为了解决这个问题,我们可以使用event.preventDefault()方法来阻止表单的默认提交行为。在事件处理函数中,我们可以在发送POST请求之前调用event.preventDefault()方法,这样就可以阻止表单的默认提交行为。

下面是修改后的代码:

$('form').submit(function(event){
  event.preventDefault(); // 阻止表单的默认提交行为
  var serialObject = $(this).serialize();
  //ex for post request
   $.post('path_to file',{
     parameters:serialObject
   },function(data){
         // do something after submitting
     });
});

0
0 Comments

问题:如何在不重定向的情况下提交表单?

原因:在上述示例中,通过使用jQuery的ajax函数来处理表单的提交。在表单的submit事件中,使用e.preventDefault()方法来阻止默认的表单提交行为,然后使用ajax函数来发送表单数据到指定的URL,并在成功返回数据后更新页面。

解决方法:将上述代码放置在form标签内部。在表单的submit事件中,使用e.preventDefault()方法阻止默认的表单提交行为,并通过ajax函数来发送表单数据。通过这种方式,可以在不重定向的情况下提交表单,并在成功返回数据后更新页面。

具体实现代码如下:



    
        
        ajax example
        
    
    
        

使用上述代码,可以在不重定向的情况下提交表单,并在页面上显示返回的数据。

0