当我在浏览器中直接输入json响应的url时,我会在浏览器中用JSON打印正确的响应,但是通过单击按钮调用相同的URL,然后响应看起来是空的。
这是我的控制器:
@RequestMapping(value="/ShowAllCustomers", method = RequestMethod.GET)
public @ResponseBody Customer AllCustomersList() {
Customer customer=customerService.findById(1);
return customer;
}
在这里,我想得到回应:
<script type="text/javascript">
function startAjax() {
$.ajax({
type : 'GET',
url : 'customers/ShowAllCustomers',//this is url mapping for controller
dataType: 'json',
success : function(response) {
alert(response);
alert(response.first_name);
//this response is list of object commming from server
}
});
}
</script>
这是按下的按钮代码:
<input type="button" value="Customers" onclick="startAjax();"/>
但是当我点击按钮时,屏幕上看不到任何警告信息。
有任何解决方案吗?
答案 0 :(得分:0)
首先验证jQuery调用的URL是否与您在浏览器中手动调用的URL相同。
您可以在Chrome中按F12键,单击“网络”选项卡,然后单击该按钮,确认该URL已被调用且是正确的,并单击它验证是否有任何响应。
在Java方面,您可以在调用方法时添加日志记录,但是为了开始我认为最好验证JavaScript方面发生了什么。
同时检查“控制台”选项卡,您可能遇到JavaScript错误,导致无法进一步执行代码。
祝你好运。