ajax post重新加载页面

use*_*112 3 ajax jquery jsp servlets

我的index.jsp页面,用这行代码加载我的表单:

 $('#box').load('/Edit_Data.jsp?id=' + myID);
Run Code Online (Sandbox Code Playgroud)

然后,我可以正确编辑表单中的数据.当我完成后,我点击一个触发此功能的按钮:

function save() {
  $.ajax({
    type: 'POST',
  cache: false,
     url: '/Edit_data',
    data: $('form[name="formData"]').serialize(),
  complete : function(jqXHR,textStatus) {
    alert("complete " + jqXHR.responseText );
    },
  error: function(jqXHR,textStatus){
        alert("status " + textStatus + ", response :" + jqXHR.responseText);
     }
   });
Run Code Online (Sandbox Code Playgroud)

}

和我的java servlet的路径"/ Edit_data",返回:

  resp.setCharacterEncoding("UTF-8");
  resp.setContentType("text/xml");
  String xml = "<report><error_msg></error_msg></report>";
  resp.getWriter().println(xml);
Run Code Online (Sandbox Code Playgroud)

单击按钮后的行为是:

  1. 请求已正确发送
  2. 我收到错误警告消息:状态错误,响应:
  3. 然后,我收到完整的消息:complete(responseText为null)
  4. 最后,它使用我发送给servlet的参数的Get请求重新加载我的index.jsp页面.像那样:http:// localhost:8888/index.jsp?name = test&firstname = test

我的问题是:为什么在完成ajax请求之后,会重新加载index.jsp页面.正确的行为应该是:在请求之后,由于我处理完整的功能,所以不能做任何事情

一条线索应该是servlet返回的错误消息,但我看不到错误的全部内容,所以我不明白是什么触发了错误......

另一个重要的线索,我只有firefox和chrome的这个问题.它适用于IE.

你能帮我解决一下吗?

非常感谢你,

蝙蝠

Man*_*ava 6

Ajax意味着异步请求...它不应该理想地重新加载,如果你没有做任何错误.好吧,你可以使用return false; Or来调用ajax函数onclick="return AjaxFunction();对于你的情况它可能是:onclick="return save();

希望这能解决您的问题.

干杯!