jquery - Spring MVC,Ajax post JSON对象,不允许405方法

标签 jquery json ajax spring-mvc

我需要将字符串(或字符串数​​组)作为 JSON 对象发送到服务器,但我不断收到此消息 405 Method not allowedBad request如果我添加 csrf参数+ token 。

这就是我正在尝试做的事情:

var data = { 'info': $('#theData').html() }; // data is: <p> bla <strong>bla</strong> bla </p> 

$.ajax({
    type: 'POST',
    contentType : 'application/json',
    dataType : 'json',
    url: "editInfo", //  ?${_csrf.parameterName}=${_csrf.token}", // `Bad Request`
    data: JSON.stringify(data),
    success: function(data){
        $('#responseMsg').html('YES!').show(200);
    },
    error: function(el) {
        var msg = 'Error ' + el.status + ': ' + el.statusText;
        $('#responseMsg').html(msg).show(200);
    }
});

这是 Controller :

@RequestMapping(value="editInfo", method = RequestMethod.POST, headers ="content-type=application/json")
public @ResponseBody String editInfo(
        @RequestBody Info info, 
        HttpServletRequest request) {

    // do stuff

    return "success";
}

类(class)Info只有 1 个名为 info 的字符串及其 getter 和 setter。理想情况下,我只想捕获 String 或 String 数组,但是无论什么都可以在没有得到的情况下工作 405 Method not allowed

最佳答案

嗯,一切看起来都很好,我无法重现它 - 添加 CSRF token 后您的网址会是什么样子?如果您设置静态参数(例如 url: "editInfo?param1=csrf_token"),您会得到 405 吗?


毕竟,问题可能是由于 Controller 方法定义不明确而发生的,所以这并不是真正的 jQuery 问题。

关于jquery - Spring MVC,Ajax post JSON对象,不允许405方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32672162/

相关文章:

javascript - 如何通过 jquery ajax 将两个或多个 `input type file` 字段上传到数据库中?

javascript - 我该怎么做才能防止我的网站在一段时间后卡住

Jquery 防止悬停时隐藏元素。悬停时清除超时,鼠标移动时设置超时

json - 如何在 NodeJS 中使用 Unirest 发布 JSON + pdf 文件

php - 使用 PHP 从简单的 JSON 数组创建多维数组

javascript自动刷新div而不刷新整个页面

javascript - jquery ajax 请求的 JSONP 解析错误

php - 如何在 wp/buddypress 中显示用户上次访问的页面?

javascript - 递归 setTimeout 模式

python - 如何获取 JSON 文件的缩进?