我有一个事务对象,我正在尝试将对象发送到首页。我尝试发送字符串时没有问题,但我无法发送对象。
所以这是我的控制器:
@RequestMapping(value="/result/helloajax", method=RequestMethod.GET)
@ResponseBody
public MyTransaction helloahjax() {
System.out.println("hello Ajax");
MyTransaction tran = MyTransaction.getInstance();
tran.setId(123);
return tran;
}
@RequestMapping(value="/result", method=RequestMethod.GET)
public String show() {
return "result";
}
这是我的ajax电话
<a href="#" onclick="doajax()">button</a>
<div class="result"></div>
function doajax() {
$.ajax({
type : 'GET',
url : '${pageContext.request.contextPath}/result/helloajax',
success : function(response) {
$('.result').html(response.id);
},
error: function() {
alert("asda");
}
});
};
我四处搜索并看到其他开发人员使用&#34; response.result.id&#34;但我也无法做到。有任何建议请。
答案 0 :(得分:1)
我建议您更改下面的代码。
1.将JSON库包含到您的类路径中,并将produces="application/json"
属性添加到RequestMapping以获取helloahjax方法。
@RequestMapping(value="/result/helloajax", method=RequestMethod.GET,produces="application/json")
2.在ajax调用中包含dataType,如下所示
$.ajax({
type : 'GET',
dataType : 'json',
url : '${pageContext.request.contextPath}/result/helloajax',
success : function(response) {
var obj = JSON.parse(response);
//Now you can set data as you want
$('.result').html(obj.id);
},
error: function() {
alert("asda");
}
});
答案 1 :(得分:0)
从控制器方法返回JSON时,URL将更改为以下内容。在这种情况下,您无需解析响应。相反,您可以直接访问对象变量response.abc
$ {pageContext.request.contextPath} /result/helloajax.json