gpt4 book ai didi

ajax - Spring 3 + JSON : HTTP status 406? 的问题

转载 作者:行者123 更新时间:2023-12-03 22:30:33 25 4
gpt4 key购买 nike

我试图通过在我的 SpringMVC 3.0 项目中通过 Ajax 发送州名称来获取城市列表。为此,我在 JSP 中使用了以下调用(使用 jQuery):

    <script type="text/javascript">
function getCities() {
jq(function() {
jq.post("getCities.html",
{ stateSelect: jq("#stateSelect").val()},
function(data){
jq("#cities").replaceWith('<span id="cities">Testing</span>');
});
});
}
</script>

这是我的 Controller 代码:

@RequestMapping(value = "/getCities", method = RequestMethod.POST)
public @ResponseBody List<StateNames> getCities(@RequestParam(value="stateSelect", required=true) String stateName,
Model model) {
// Delegate to service to do the actual adding
List<StateNames> listStates = myService.listCityNames(stateName);

// @ResponseBody will automatically convert the returned value into JSON format
// You must have Jackson in your classpath
return listStates;
}

但是当我运行它时,我收到 HTTP 406 错误,指出以下内容:406 Not Acceptable 所请求的资源只能根据请求中发送的 Accept header 生成 Not Acceptable 内容。

我在 Maven 依赖项中使用了 Jackson,并在我的上下文文件中进行了定义。我在谷歌上进行了广泛的搜索,我猜问题是 @ResponseBody 不会自动将我的列表转换为适当的 JSON 对象。

我的 Firebug 说:

Response Headers  
Server Apache-Coyote/1.1
Content-Type text/html;charset=utf-8
Content-Length 1070
Date Sat, 12 Feb 2011 13:09:44 GMT

Request Headers
Host localhost:8080
User-Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept */*
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
Content-Type application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With XMLHttpRequest
Referer http://localhost:8080/MyApplication/
Content-Length 17
Cookie JSESSIONID=640868A479C40792F8AB3DE118AF12E0
Pragma no-cache
Cache-Control no-cache

请指导我。我究竟做错了什么??帮助!!

最佳答案

正如 Peter 在评论中所写,问题的原因是 Spring 无法加载 Jackson。默认情况下,它不被依赖项加载。添加依赖项后

  <dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-jaxrs</artifactId>
<version>1.9.2</version>
</dependency>

在浏览器中输入地址后返回 JSON,没有任何接受 header 的技巧(正如它应该做的那样)。

在 Tomcat 7.0 上测试。

关于ajax - Spring 3 + JSON : HTTP status 406? 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4982966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com