3

SpringMVCコントローラーから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>  

WAS8を実行しています。何が問題なのかわかりません。単純なオブジェクトをjson形式で返すことはできますが、JSONArrayオブジェクトを返すことはできません。私が何か間違ったことをしている場合に備えて私に知らせてください。

同じ議論をしている既存のスレッドがたくさんあることを私は知っています。しかし、JSONArrayオブジェクトの例を持っている人は見つかりませんでした。パワン・チョープラ

4

1 に答える 1

0

406 は、応答のヘッダーと一致する Accept ヘッダーが要求に含まれていなかったことを意味します。これはW3から来ています:

要求によって識別されるリソースは、要求で送信された受け入れヘッダーに従って受け入れられないコンテンツ特性を持つ応答エンティティのみを生成できます。

リクエストを見ることから始めます。リクエストのヘッダーに「application/json」があることを確認してください。次に、応答の Content-Type が同じに設定されていることを確認します。

于 2013-03-04T21:24:18.510 に答える