我想从返回的字符串Spring MVC Controller
来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]
我在这里失踪了什么?
当您String
从带有注释的处理程序方法返回一个时@ResponseBody
,Spring将使用一个StringHttpMessageConverter
将返回内容类型设置为text/plain
.但是,您的请求没有Accept
该内容类型的标头,因此服务器(您的Spring应用程序)认为返回是不可接受的text/plain
.
更改您的ajax以添加Accept
标头text/plain
.