无法在前端接收来自rest api的响应

时间:2015-12-15 03:38:59

标签: java html json

我试图将java中的spring的响应结果返回到html页面但是没有收到响应。基本上我的searchRoom方法尝试搜索房间的可用性,如果它可用则返回true或者否则返回false。我的响应消息被传递给html文件,并且响应应该通知用户是否可用。但我无法收到回复,请有人告诉我我做错了什么。并且旁注我试图做一个控制台日志,但无法打印出真或假。

以下是我的Java代码:

@RequestMapping(value = "/guest/search", method = RequestMethod.POST)
    public String SearchRoom(@RequestBody Occupancy occupancy, ModelMap model){

        boolean result = occupancyservice.searchAvlRoom(occupancy);
        System.out.print(result);
        model.addAttribute("result", result);
        return "guest";
    }

下面是我的查询函数,它发布数据并收到响应:

 $("#checkAvailabilityForm").submit(function(e){
        e.preventDefault();

        var formData={
            "checkInDate": $("#checkInDate").val(),
            "checkOutDate": $("#checkOutDate").val(),
            "roomsWanted":$("#roomsWanted").val(),
            "room":{
                "roomType": $("input[name=roomType]:checked").val(),
                "roomProperties":$("input[name=roomProperties]:checked").val()
            }

        };

        $.ajax({
            type: 'post',
            url: 'guest/search',
            dataType: 'json',
            data: JSON.stringify(formData),
            contentType: 'application/json',
            success: function(dataRecieved){
                var dataRecieved= $.trim(dataRecieved);
                console.log(dataRecieved);
                /*if(dataRecieved === ''){

                }else{

                }*/
            }

        });

1 个答案:

答案 0 :(得分:0)

实际上想通了。我忘了使用@ResponseBody注释,下面的代码解决了我的问题:

@RequestMapping(value = "/guest/search", method = RequestMethod.POST)
    @ResponseBody
    public boolean SearchRoom(@RequestBody Occupancy occupancy){
        boolean result = occupancyservice.searchAvlRoom(occupancy);
        return result;
    }