【问题标题】:AJAX call is not sending data to controller methodAJAX 调用未向控制器方法发送数据
【发布时间】: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


【解决方案1】:

区分大小写在 Ajax 中也很重要。

您能否检查一下您的 BlogEntry 类中的 EntryNameEntryBody 变量是否区分大小写。

声明的变量应该是驼峰式的,比如'entryBody'和'entryName',对应的setter应该是getEntryBody()、setEntryBody()等。

因此,请修改您的 ajax 调用中的 data 属性以及 Class 中的变量,使用相同的大小写(Camel Case),即“entryBody”和“entryName” >'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2015-11-22
    • 2015-04-16
    • 2017-04-29
    • 1970-01-01
    • 2016-08-02
    • 2019-01-06
    相关资源
    最近更新 更多