406不可接受:Spring 3.2 + JSON + AJAX
搜索了大量的网站,甚至堆栈溢出,但还没有找到解决这个问题的方法。 看起来很多人遇到了这个问题,但它似乎缺少一个统一的解决方案,涵盖了所有方面。 已经花了1.5天就可以了。
我看到该方法被调用,但某处@ResponseBody
没有被正确翻译。 有人可以看看,让我知道问题是什么。 我已经在github上载了代码。 链接到github上的源代码
@RequestMapping(value = "/find_user", method = RequestMethod.GET) public @ResponseBody List findUser(@RequestParam("term") String name) { log.info("Search string for user name: " + name); List users = new ArrayList(); users.add("Sam"); users.add("Dan"); return users; }
浏览器屏幕截图下面有406响应
请注意:啊! 多么痛苦 此设置适用于Spring 3.1.4,而不适用于3.2.X
上帝,它差点杀了我。 我尽我所能,仍然坚持到那里。 但最后我明白了。 原因是Spring,下载Spring 3.1.1并用3.1.1jars替换所有的jar,它的工作原理。 你所有的配置都很好。
我也遇到了同样的问题。 调试Spring后,我发现ServletPathExtensionContentNegotiationStrategy
尝试根据URL中的扩展名确定媒体类型。 (可能是因为它无法推断出应该从包含*/*
Accept
标头返回的媒体类型。)
因此,解决此问题的方法之一是通过用.json
替换.html
来重命名映射中的URL。