带有Ajax请求的错误415(Ajax,Spring)

时间:2017-05-21 14:12:30

标签: java jquery json ajax spring-mvc

我向服务器发送Ajax请求,但服务器没有得到响应。

PUT请求:

function editNavigation() {
        var flight={
            id:idAction.replace('edit',''),
            navigation:newNavigation
        };
        console.log(flight);
        var prefix = '/airline/';
        $.ajax({
            type: 'PUT',
            url: prefix +'flights/' + idAction.replace('edit',''),
            data: JSON.stringify(flight),
            headers:{contentType: "application/json"},
            success: function(receive) {
                $("#adminTable").empty();
                $("#informationP").replaceWith(receive);
                $("#hiddenLi").removeAttr('style');
            },
            error: function() {
                alert('Error edited flight');
            }
        });
    }

控制器:

    @RequestMapping(value = prefix + "/flights/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE)
    @ResponseBody
    public String updateFlight(@PathVariable("id") String id, @RequestBody FlightDto flightDto) {
        String returnText = "Flight edited successful";
        String str1 = flightDto.getNavigation();
        logger.info(str1);
        String str2 = id;
        logger.info(str2);
        return returnText;
    }

浏览器控制台:

Object {id: "5", navigation: "sdf"}

PUT http://localhost:8080/airline/flights/5 415 ()

为什么我会收到错误415? 为什么我的控制器不发送响应?

1 个答案:

答案 0 :(得分:0)

415共鸣代码为Unsupported Media Type

  1. 如果您的服务需要POST(或任何类型)请求以及用户是否发送 PUT请求服务器将提供此类响应。

  2. 如果用户发错了MediaType,那么此类错误也会出现。

  3. 在您的代码中,我认为您配置的错误MediaTypeAPPLICATION_JSON_VALUE。您可以指定MediaType.APPLICATION_JSON

    我认为这会有所帮助。