我有一个MVC Spring控制器。我在页面加载时将其称为ajax。
$.ajax({
type: "get",
url: 'custom/Service',
data: "note1=" + "11",
dataType: "json",
async: false,
success: function() {
alert("1");
},
error:function (xhr, ajaxOptions, thrownError){
if(xhr.status == 200 && xhr.statusText == 'parsererror'){
window.location.reload();
} else {
alert(xhr.status+","+xhr.statusText);
alert(thrownError);
}
}
});
我的控制器是:
@RequestMapping("/custom")
public class CustomController {
@RequestMapping(value="/Service", method=RequestMethod.GET)
public String Service(
@RequestParam("note1") String note1,
HttpServletRequest request, HttpServletResponse response, Locale locale,
Model model) {
String result = custom.Service(note1, request, response);
System.out.println("result: " + result);
return result;
}
}
在控制台的控制台中输出正确。但我得到“Not Found”错误。这是开发人员工具错误:GET“MySite / custom / Service?note1 = 11”404(Not Found)。有什么问题?
答案 0 :(得分:1)
更改您的代码,如下所示:
@RequestMapping(value="/Service", method=RequestMethod.GET)
public @ResponseBody String Service(
@RequestParam("note1") String note1,
HttpServletRequest request, HttpServletResponse response, Locale locale,
Model model) {
String result = custom.Service(note1, request, response);
return result;
}
您可以在ajax成功函数中访问结果。
success: function(result) {
alert(result);
},
答案 1 :(得分:0)
您需要在返回参数
中添加响应正文注释 public @ReponseBody String Service(
弹簧控制器不必返回视图,它可以使用reposnsebody注释返回数据。您的原始代码将根据您的视图解析器设置将结果变量作为jsp查找。