我试图从我的spring mvc控制器返回JSONArray对象。但我在浏览器上遇到406错误。这是一个ajax请求,我使用jquery来发出请求。
Spring控制器方法:
@RequestMapping("/getAuthorizedScreensForUser.do")
public @ResponseBody JSONArray getAuthorizedScreensForUser(HttpSession session){
UserAuthDetails userAuthDetails = (UserAuthDetails) session.getAttribute("userauthdetails");
//This method returns JSONArray
return webUtilsService.getJSONArrayResponseForAuthorizedScreens(userAuthDetails.getScrnfldacss());
}
我在spring-context.xml中尝试了这两个条目
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="prefixJson" value="true"/>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
和
<mvc:annotation-driven/>
我的pom.xml有这些依赖项:
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.9.12</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.12</version>
</dependency>
我正在运行WAS 8.不确定是什么问题。我能够以json格式返回简单对象,但不能返回JSONArray对象。如果我做错了什么,请告诉我。
我知道有很多现有的线程有相同的讨论。但我没有找到任何有JSONArray对象示例的人。 Pawan Chopra
答案 0 :(得分:0)
A 406表示您的请求未包含与响应中的接头相匹配的接受标头。这来自W3:
请求标识的资源只能生成 具有不可接受的内容特征的响应实体 根据请求中发送的接受标头。
我会从查看请求开始。确保它在请求的标题中有“application / json”。然后,确保将响应的Content-Type设置为相同。