弹簧控制器+;Ajax返回字符串
我想将字符串从弹簧控制器+;Ajax返回字符串,ajax,spring,model-view-controller,controller,Ajax,Spring,Model View Controller,Controller,我想将字符串从springmvc控制器返回到Ajax。 它未按预期工作,并出现错误 我的Ajax代码: function ajaxRequest(item) { $.ajax({ type: "POST", url: "/myPage", data: { item: item }, success: function (html) { alert(html);
springmvc控制器
返回到Ajax
。
它未按预期工作,并出现错误
我的Ajax代码:
function ajaxRequest(item) {
$.ajax({
type: "POST",
url: "/myPage",
data: {
item: item
},
success: function (html) {
alert(html);
},
error: function(e) {
console.log("Error:" + e);
}
});
}
我的控制器:
@RequestMapping(value = "/myPage", method= RequestMethod.POST, produces="text/plain")
public @ResponseBody String myController(HttpServletRequest request) {
String myItem = request.getParameter("item");
...
return myItem + "bla bla bla";
}
Chrome控制台结果:
POST http://localhost:8080/myPage 406 (Not Acceptable) jquery.js
Error:[object XMLHttpRequest]
我在这里遗漏了什么?确保你有杰克逊的依赖关系。Spring MVC可以依赖它。我已经解决了它。我们可以使用response writer返回正确的值
@RequestMapping(value = "/myPage")
public void myController(HttpServletRequest request, HttpServletResponse response) throws IOException {
String myItem = request.getParameter("item");
...
response.getWriter().println(myItem + "bla bla bla");
}
当您从带有
@ResponseBody
注释的处理程序方法返回字符串时,Spring将使用StringHttpMessageConverter
,它将返回内容类型设置为text/plain
。但是,您的请求没有该内容类型的Accept
标题,因此服务器(您的Spring应用程序)认为返回text/plain
是不可接受的
更改ajax以添加text/plain
的Accept
标题,此处不涉及Jackson。