gpt4 book ai didi

javascript - 从 Jquery Ajax 调用 getparameter

转载 作者:行者123 更新时间:2023-12-03 07:39:43 25 4
gpt4 key购买 nike

这几天在学习Jquery,遇到了一个关于提交数据的疑惑。让我们考虑下面的例子

JSP:

<body>
<form name="newForm" id="newForm" action="getData" method="get">
<input type="name"/>
<input type="button" onclick="submit()"/>
</form>
</body>

JS:

function submit(){
document.getElementById("newForm").submit();
}

Servlet:

protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String x = request.getParameter("name");
system.out.println("Received name is "+ x);
}

当我运行上述程序时,控制台正确打印值。

我使用 Jquery 运行相同的代码,代码如下。

$(document).ready(function() {
$("form1").submit(function() {
$.ajax({
type : "get",
url : "getData",
success : function(msg) {
$('#header').append("Hi");
}
});
return false;
});
});

什么也没发生。我的问题是,我是否必须在 data 中发送名称,还是可以像 JavaScript 一样工作,即不发送参数,它就会选择数据?

简单来说,要通过 Ajax/Jquery 调用从 Servlet 中的 JSP 获取参数,我是否需要强制发送 data 中的参数。

谢谢

最佳答案

标准表单的submit()方法只是通过浏览器提交表单 - 与单击没有绑定(bind)点击事件的按钮相同,因此它不是异步提交表单。

对于您的 JQuery 示例,您需要将“提交”事件绑定(bind)到表单,以防止其默认行为并异步提交表单。

为了在请求中传递与第一个示例相同的数据,您还需要序列化表单。

例如:

$(document).ready(function() {
$("#newForm").on('submit', function(e){
$.ajax({
type: "get",
url: "getData",
data: $(this).serialize(),
success: function(msg) {
$('header').append("Hi");
}
});
e.preventDefault();
}).submit();
});

工作 fiddle :https://jsfiddle.net/rgh97b6h/1/

关于javascript - 从 Jquery Ajax 调用 getparameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35457946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com