我正在寻找一种方法来使用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
答案 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();
});