我正在尝试编写一个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 本地主机:8080 /测试/ updatebasicdetails 此页面具有相同的HTML响应,我从ajax调用响应中收到的内容。 我犯错的地方????
方法代码 -
@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)是返回字符串的私有方法。 data是jpa实体对象。 inside方法stringbuilder用于设置html字符串中的值,并返回一个带有新值的整个html字符串。
答案 0 :(得分:1)
答案 1 :(得分:0)
试试这个
jQuery("#editbasicsavelink").click(function (e) {
e.preventDefault();//this will stop page from refreshing
jQuery.ajax({
//ajax code
)}
});
答案 2 :(得分:0)
检查按钮的类型(id =“editbasicsavelink”)。如果类型为“提交”,请将其更改为按钮。 (要么) 添加“return false;”在回调函数中,以防止表单提交。
答案 3 :(得分:0)
我的回调没有绑定到html元素。确保在document
完全加载后绑定它。将id=editbasicsavelink
添加到您的按钮,并确保拨打event.preventDefault()
,因为它将停止默认操作。
jQuery(document)
.ready(function() {
jQuery("#editbasicsavelink")
.on('click',function(event) {
jQuery.ajax({
//ajax code
});
});