Spring异常:org.springframework.web.HttpRequestMethodNotSupportedException:不支持请求方法'POST'

时间:2017-09-26 16:42:05

标签: spring jsp spring-mvc

我有一个ResponseEntiy收到评论:

@RequestMapping(value="/save-comment", method=RequestMethod.POST)
@ResponseBody
public ResponseEntity<?> saveComment(@RequestParam("name") String comment, @RequestParam("id") long id) {

    SiteUser user = authController.getUser();

    String cleanedCommentBody = htmlPolicy.sanitize(comment);

    StatusUpdate status = statusUpdateService.getOneById(id);

    Comment createdcomment = new Comment();
    createdcomment.setCommentdate(new Date());
    createdcomment.setCommenttext(cleanedCommentBody);
    createdcomment.setStatusUpdate(status);
    createdcomment.setSiteUser(user);

    commentService.createComment(createdcomment);

    return new ResponseEntity<>(null, HttpStatus.OK);
}

我的JSP中的代码工作正常....它将值发送到我的Controller方法,方法接收它,处理信息并将新注释保存在数据库中,但之后,显示相同的页面.. .. 它给了我错误。但其他POST请求我工作正常。

http://192.168.160.128:8080/viewonestatus/58 
Exception: org.springframework.web.HttpRequestMethodNotSupportedException: 
Request method 'POST' not supported
Failed URL: http://192.168.160.128:8080/viewonestatus/58
Exception message: Request method 'POST' not supported

AJAX片段提供的代码是:

.....
<c:url var="saveComment" value="/save-comment" />
.....

function saveComment(text) {
    //alert("El texto es...text " + text);
    editComment(text, "${status.id}", "${saveComment}");
}

function editComment(text, id, actionUrl) {

    var token = $("meta[name='_csrf']").attr("content");
    var header = $("meta[name='_csrf_header']").attr("content");

    $.ajaxPrefilter(function(options, originalOptions, jqXHR) {
        jqXHR.setRequestHeader(header, token);
    });

    $.ajax({
        'url' : actionUrl,

        data : {
            'name' : text,
            'id' : id
        },

        type : 'POST',

        success : function() {
            alert("Ok");
        },

        error : function() {
            alert("error");
        }
    });
}

0 个答案:

没有答案