0

我无法使用 jQUERY AJAX POST 访问我的 spring 控制器。我正在尝试使用 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);

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

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

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

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

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

更新

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

4

1 回答 1

1

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

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

这应该为您完成这项工作。

于 2013-05-08T15:22:02.577 回答