3

我正在尝试从我的 spring mvc 控制器返回 JSONArray 对象。但是我在浏览器上收到 406 错误。这是一个 ajax 请求,我正在使用 jquery 来发出请求。

弹簧控制器方法:

@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 对象示例的人。帕万乔普拉

4

1 回答 1

0

406 表示您的请求不包含与响应中的匹配标头匹配的接受标头。这来自W3

请求标识的资源只能根据请求中发送的接受头生成具有不可接受的内容特征的响应实体。

我将从查看请求开始。确保它在请求的标头中有“application/json”。然后,确保将响应的 Content-Type 设置为相同。

于 2013-03-04T21:24:18.510 回答