在AJAX通话中找不到404

时间:2018-11-02 16:49:37

标签: javascript java jquery ajax spring-mvc

我正在使用Spring MVC,当我执行ajax post调用时,我得到了404。我的控制器如下所示:

@Controller
@RequestMapping("/mensaje")
public class MensajeController {

    public MensajeController() {
        super();
    }

    @ResponseBody
    @RequestMapping(value = "/prueba", method = RequestMethod.POST)
    public String prueba(@RequestParam("cuerpo") final String cuerpo) {
        String b = null;

        String a = null;

        return b;
    }
}

然后像这样的ajax调用:

<script type='text/javascript'>
    $(document).ready(function() {      
        $("#save").click(function(e) {
            e.preventDefault();
            var myEditor = document.querySelector('#editor');
            var html = myEditor.children[0].innerHTML;

            $.ajax({
                    type : "POST",
                    url : "/Gestion-Practicas/mensaje/prueba",
                    dataType: "json",
                    contentType: 'application/json; charset=utf-8',
                    data: {'cuerpo': html},
                    async: false,
                    cache: false,
                    delay: 15,
                    success: function(data){
                        alert('success');
                    },
                    error: function (xhr) {
                        alert(xhr.responseText);
                    }
                });     
        });

    });
</script>

我执行ajax调用的网址是:

http://localhost:8080/Gestion-Practicas/mensaje/create.do

进行ajax调用后,出现在Chrome控制台中的网址是:

http://localhost:8080/Gestion-Practicas/mensaje/prueba

总而言之,ajax调用永远不会到达控制器的方法,我也不知道为什么

1 个答案:

答案 0 :(得分:3)

使用@RequestParam代替@RequestBody

@RequestParam-用于请求网址中的查询参数。

@RequestBody-这是后主体有效载荷。

将您的String cuerpo转换为具有属性String cuerpo的课程

public class PostBody{
  private String cuerpo;
  public String getCuerpo(){
    return this.cuerpo;
   }

   public void setCuerpo(String cuerpo){
     this.cuerpo = cuerpo;
   }
}

现在您的行public String prueba(@RequestParam("cuerpo") final String cuerpo)

更新后的外观类似于public String prueba(@RequestBody final PostBody postBody)