【发布时间】:2016-04-11 09:15:22
【问题描述】:
我正在尝试编写一个 ajax 调用来响应我正在传回一个 html 字符串 我将此 html 字符串设置为 div 内容。它正在工作,但一旦 div 更新,请求就会被转发到新页面。我想不通。
这里是html代码-
<div id="basicdetailsdiv" class="row"><br>
<form:form id="basicdetailsform" method="post" modelAttribute="basicdetailform" action="updatebasicdetails"><br>
<div class="col-sm-6"><br>
..... ...... .....<br>
...... ..... .... <br>
<div id="editbasicsavediv" class="col-xs-5 control-label"> <a id="editbasicsavelink" class="btn vd_btn btn-xs vd_bg-yellow"> <i class="fa fa-pencil append-icon"></i> Save </a> </div>
</form:form>
<div>
.js 代码
jQuery("#editbasicsavelink").click(function () {
jQuery.ajax({
type: "POST",
url: "updatebasicdetails.xml",
dataType: "html",
data: $("#basicdetailsform").serialize(),
success: function (response) {
alert(response);
alert(response.responseHtml);
alert(response.responseText);
$("#basicdetailsdiv").html(response);
//element.innerHTML = resp.responseText
alert("Details saved successfully!!!");
// XMLHttpRequest.abort();
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
});
所以一旦页面更新了响应,然后请求转发到一个新的 url localhost:8080/test/updatebasicdetails 此页面具有与我从 ajax 调用响应中收到的相同的 html 响应。 我在哪里犯错????
方法代码-
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public String processForm(@Valid com.mrg.form.BasicDetailsForm bdForm, Model model, HttpServletRequest request
) {
System.out.println("basic details save start");
// service call here to read entity object from db which is data
model.addAttribute("basicdetailform", bdForm);
return getBasicDataResponse(data);
}
getBasicDataResponse(data) 是返回字符串的私有方法。数据是 jpa 实体对象。在方法 stringbuilder 中设置 html 字符串中的值并返回具有新值的整个 html 字符串。
【问题讨论】:
标签: javascript jquery ajax call