jQuery Ajax POST请求没有命中Spring控制器

时间:2013-05-08 13:56:56

标签: jquery spring-mvc

我无法使用jQUERY AJAX POST击中我的弹簧控制器。 我正在尝试使用JSON响应获取字符串列表。

我的javascript函数在选择下拉列表时调用:

function doAjaxPost() {  

  var name = $('#selected_report').val();

  alert("POST Ajax request initiating.... name : " + name);

  $.ajax({  
    type: "POST",  
    url: "/NewILR/interfaceReportsSearch/findEntityTypes", 
    contentType: "application/json",
    data: JSON.stringify({selectedReport:name}),  
    dataType: "text",
    success: function(response){
      if(response.status == "SUCCESS"){
          alert("SUCCESS");
      }else{
            alert("FAILURE");
      }       
    },  
    error: function(e){  
      alert('Error: ' + e);  
    }  
  });  
} 

注意显示上述两个警报(POST Ajax请求启动...和'错误:'+ e))

Spring Controller来处理AJAX请求:

@RequestMapping (value="/interfaceReportsSearch/findEntityTypes",method=RequestMethod.POST, produces = "application/json")
    public @ResponseBody JsonResponse addUser(@RequestBody String selectedReport , BindingResult result ){

    System.out.println("Ajax Request Received! reportName = " + selectedReport);

注意以上的print语句永远不会执行。 我也没有看到一个控制台输出,也许请求没有到达服务器。

没有特殊的bean添加到servlet配置中,但我添加了以下两个:

<mvc:annotation-driven />
<context:annotation-config/> 

将以下jar添加到我的类路径中。

jackson-core-2.2.0
jackson-annotations-2.2.0
jackson-databind-2.2.0

更新

解决:将数据类型更改为json

1 个答案:

答案 0 :(得分:1)

通过以下方式更改ajax请求的url属性:

url: "${pageContext.request.contextPath}/NewILR/interfaceReportsSearch/findEntityTypes",

这应该适合你。

相关问题