今天写了个rest service,然后用jquery去调用的时候,回调函数总是没有返回,检查service确实没有出错后找到原因:
原来rest sevice的返回结果需是JSON格式,否则jquery ajax调用的时候不会执行回调函数。
老的restful service (返回值是String):
@GET
@Path("/showProdNameByCode/{prodCode}")
@Produces(MediaType.APPLICATION_JSON)
public String showProdNameByCode(@PathParam("prodCode") String prodCode) {
String prodName = "";
prodAnalysisService = (ProdAnalysisService) SpringContextUtil.getBean("prodAnalysisService");
prodName = prodAnalysisService.prodNameByCode(prodCode)````````
}
老的调用方法:
var url = "http:XXXXXXXX/showProdNameByCode/"+prodCode;
$.getJSON(url, function(data){
prodName = data;
})
修改之后(返回值由String改为list),
新的restful service (返回值是list)
@GET
@Path("/showProdNameByCode/{prodCode}")
@Produces(MediaType.APPLICATION_JSON)
public List<String> showProdNameByCode(@PathParam("prodCode") String prodCode) {
String prodName = "";
List<String> prodNames = new ArrayList<String>();
prodAnalysisService = (ProdAnalysisService) SpringContextUtil.getBean("prodAnalysisService");
prodName = prodAnalysisService.prodNameByCode(prodCode);
prodNames.add(prodName);
return prodNames;
}
新的调用方法:
var url = "http:XXXXXXXX/showProdNameByCode/"+prodCode;
$.getJSON(url, function(data){
prodName = data[0];
$("#prod_value_name").html(prodName + " (产品代码:" + prodCode + ")");
})
总结:rest sevice的返回结果需是JSON格式,否则jquery ajax调用的时候不会执行回调函数