我正在尝试在我的Spring应用程序中实现一个非常基本的AJAX调用(之前从未使用过AJAX)。现在我只是尝试进行一个返回字符串的调用,并更新表单中的文本区域。我知道JQuery代码被调用没有问题因为我可以调试我的浏览器中的发送部分,并且控制器正在获取请求。我认为@ResponseBody注释在某种程度上应该神奇地返回方法返回值的内容,但它像JQuery一样不会“看到”它或其他东西。控制器只返回字符串,整个html页面只显示字符串。我无法在JQuery调用中调试SUCCESS部分。我在这里错过了什么吗?
表单(为了便于阅读而截断)
<form id="ajaxTaskUpdate" th:action="@{/updateTask}" th:object="${Task}" method="post">
<textarea id="taskDescription" name="taskDescription" class="materialize-textarea blue" th:text="${task.description}" maxlength="250"></textarea>
</form>
Jquery片段
$('#ajaxTaskUpdate').submit(function(event) {
$.ajax({
url : $("#ajaxTaskUpdate").attr("action"),
data : data,
type : "POST",
success : function(response) {
//BREAKPOINT NEVER HITS HERE
$("#taskDescription").text(response);
},
error : function(xhr, status, error) {
alert(xhr.responseText);
}
});
return false;
});
Spring Controller
@RequestMapping(value = "/updateTask", produces = "application/json", method = RequestMethod.POST)
@ResponseBody
public String updateTask(Task task) {
//I want this to be "ajaxed" into my form's text area
return "successful Ajax Response!";
}
控制器响应后GUI
答案 0 :(得分:1)
您实际上是通过将表单提交到服务器来请求发布。虽然页面已刷新,但您的ajax请求无法执行。我必须留在页面上执行任何javascript方法或事件。
/updateTask
或您想要的任何地方json
Task
作为@RequestBody
consumes=MediaType.APPLICATION_JSON_VALUE
data
json字符串
醇>