【发布时间】:2016-08-13 16:31:07
【问题描述】:
这是我的 JavaScript 文件中的内容:
$(document).ready(function () {
$('#add-be-submit').click(function (event) {
event.preventDefault();
$.ajax({
type: 'POST',
url: '/snapdragon/blog/new',
data: JSON.stringify({
EntryName: $('#add-be-title').val(),
EntryBody: CKEDITOR.instances.addBeBody.getData()
}),
contentType: 'application/json; charset=utf-8',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
dataType: 'json'
}).success(function (data, status) {
$('#add-be-title').val('');
CKEDITOR.instances.addBeBody.getData('');
});
});
这是我的控制器中的内容:
/* ---------- ADD BLOG ENTRTY ---------- */
@RequestMapping(value = "/new", method = RequestMethod.POST)
@ResponseStatus(HttpStatus.CREATED)
public void addBlogEntry(@Valid @RequestBody BlogEntry entry) {
dao.addBlogEntry(entry);
}
控制器本身的 RequestMapping 设置为“/blog”。我找不到问题。我在“dao.addBlogEntry(entry)”上设置了一个断点,发现传入的对象有EntryName和EntryBody的值为空。但是当我在 JavaScript 控制台中检查“$('#add-be-title').val()”和“CKEDITOR.instances.addBeBody.getData()”的值时,它们的值是正确的。
有什么想法吗?
【问题讨论】:
-
如果您允许 GET,yourserver.com/snapdragon/blog/new 在浏览器中返回什么
-
可以在浏览器的开发工具中查看请求信息。我的意思是 devTools 中的 Network/Net 选项卡。您可以找到您的请求消息、标头等。
-
我在允许 GET 时收到 400 错误请求错误,并按照上述方式收到 500 内部服务器错误。 500 错误读取,“HTTP Status 500 - 请求处理失败;嵌套异常是 org.springframework.dao.DataIntegrityViolationException:
-
您需要映射 RequestMethod.GET 以从浏览器测试 URL
-
@mplungjan 我该怎么做?把控制器中的RequestMethod改成GET,ajax调用改成GET?
标签: javascript java jquery ajax spring-mvc