ajax 后台正常执行,前台报错信息却是404

检查下后台设置Response输出对象的StatusCode为什么404的,要不也会提示404状态

原因和解决方法【感谢网友】:

先前忽略了注解@ResponseBody的作用。

@responsebody表示该方法的返回结果直接写入HTTP response body中
一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,会直接返回json数据。ajax 后台正常执行,前台报错信息却是404

后台正确代码

@RequestMapping(value = "/getLenderMsg")
 @ResponseBody
 public Map<String, Object> getLenderMsg(HttpServletRequest request){

return null;

}

前台正确ajax

$.ajax({
    url : "${path}/epweb/contractLenderModify/getLenderMsg",
    data : {"contractnum":contractnum},
    type : "post",
    dataType : "json",
    cache : false,
    error: function(textStatus, errorThrown) {
     
       },
    success : function(data) {
     if(data.msg == "suc"){
      $("#lenderName").val(data.name);
      $("#idType").val(data.idType);
      $("#idNo").val(data.idnum);
      $("#lender").show();
     }else{
      $("#lenderName").val("");
      $("#idType").val("");
      $("#idNo").val("");
      $("#lender").hide();
     }
    }
   });

相关推荐