我有以下代码将ajax调用的可序列化数据发送到servlet
$.ajax({
type: "post",
url: registersubmit.RegisterServlet.json,
dataType: "json",
data:$('#registrationForm').serialize(),
success: function(msg) {
// alert(msg.data);
alert('success'+msg.message2);
},
error: function (xhr, ajaxOptions, thrownError){
alert('HAI');
alert('BYE');
}
});
我有一个带有id registrationForm的表单,当我尝试使用语句数据发送可序列化数据时:$('#registrationForm')。serialize(),我得到响应“servlet暂时移动状态代码302 ”
注意:如果我删除语句数据:$('#registrationForm')。serialize(),那么我得到状态代码为200的正常ajax响应。
我是否知道如何在ajax调用上发送可序列化数据。
谢谢, 巴拉吉。
答案 0 :(得分:2)
302只表示servlet已调用response.sendRedirect(newURL)
。也许你的servlet出于某种原因正在这样做,因为它已成功处理了请求?
在$.ajax()
中检索重定向的响应时,浏览器不会自动更改主窗口。如果您确实需要将主窗口更改为给定的URL,那么您需要让servlet返回包含所需目标URL的特定响应,然后让JavaScript使用window.location=newURL
执行重定向,其中newURL
1}}已从响应中提取。
顺便说一下,你的术语“可序列化数据”在上下文中听起来非常错位。 $.serialize()
仅收集JSON对象中表单的所有输入值,以便可以作为$.ajax
的请求参数发送。在Java上下文中,“可序列化数据”具有完全不同的含义。