2

spring3 mvc アプリケーションに ajax を実装してみました。単純な文字列を返すときは Ajax は正常に機能しましたが、文字列のリストを返そうとすると406 error.

これは私のcontextファイルです

<context:annotation-config />
<context:component-scan base-package="com.ajaxtest" />
<mvc:annotation-driven />
<import resource="hibernate-context.xml" />
<mvc:resources mapping="/resources/**" location="/resources/"/>

これは私のコントローラーマッピング方法です

@RequestMapping(value="/test", method = RequestMethod.GET, 
        headers="Accept=*/*")
public @ResponseBody List<String> testAjax(@RequestParam("query") String query) {
    System.out.println(query);
    ArrayList<String> list = new ArrayList<String>();

    for (int i = 0; i < 10; i++) {
        list.add(""+i);
    }
    return list;
}

これは私のjsコードです。

$(function(){
    $.get('ajax/test.html',{'query' : 1},function(data){
        console.log(data);
    });
});

マッピング用に次の jar ファイルを追加しました。

jackson-core-2.0.2.jar, jackson-core-asl-1.9.7.jar, jackson-datatype-json-org-2.0.2.jar, jackson-mapper-asl-1.9.7.jar

オブジェクトのリストを js に戻すには、どのような変更を行う必要がありますか?

4

1 に答える 1

2

HTTP エラー コード 406 は、Bad Client Request を表します ( HTTP エラー コードを参照) 。

要求されたリソースは、要求で送信された Accept ヘッダーに従って受け入れられないコンテンツを生成することしかできません。

Accept ヘッダーを に設定する必要がありますapplication/json。JQuery では、次を使用してそれを行います。jQuery.getJSON()

于 2012-08-08T19:27:47.303 に答える