Ajax表单提交并获取查询字符串并附加到新页面和重定向

时间:2017-12-04 16:45:30

标签: javascript jquery ajax forms

我正在寻找一种方法来使用ajax提交表单,重定向到URL并在其上发送数据,还可以获取URL上的查询字符串。基本上,一个正常的GET请求,这就是我试过的

com.sun.jersey.api.core.HttpContext

我想获取查询字符串

$('#searchform').submit(function(event) {
  $.ajax({
    type: "get",
    url: "/list",
    data: $("#searchform").serialize(),
    beforeSend: function() {
      $(".loader").show();
    },
    success: function(data) {
      location.href = "/list"; //redirect to list
      $("#ajaxcontent").empty(); //try to append data on this div, not sure how 
      $("#ajaxcontent").append(data);
    }
  });
  event.preventDefault();
});

与GET请求相同的内容。

总而言之,我对此使用ajax的唯一目的是显示预加载器。

有人会善良和耐心地帮助我解释我应该如何提出我的ajax请求。我希望自己能够理解。

这是表格

/list?input1=thisinput&input2=anotherinput

1 个答案:

答案 0 :(得分:0)

这里的问题是您使用两种与\ list进行通信的方式。

首先,你在\ list(带有.ajax()函数)发送一个ajax请求,这个请求联系人\ list,给你你的表单数据,然后发回一些数据(在成功函数中) )。

接下来,您使用简单的javascript重定向到\ list而不包含任何数据。

所以你必须做出选择:

- 保留ajax请求(只需删除location.href =" / list&#34 ;;然后),但是你将保持在同一页面上(你正在追加数据就好了)。它将需要从\ list中返回一些内容,使用和滥用console.log(数据);看看你在这里得到了什么。

- 删除简单重定向的ajax请求,但随后加载器将几乎不可见,因为页面更改将非常快。没有任何JS,你会变得更好。测试它:

$('#searchform').submit(function(event) {
  $(".loader").show();
  location.href = "/list?"+$("#searchform").serialize(); //redirect to list
  event.preventDefault();
});