0

オブジェクトのリストを返すURLを.ajaxでヒットしようとしていますが、春にjacksonJsonViewを使用して、ブラウザーでjsonを返します。しかし、このコードを試してみると、成功することはありませんが、エラーアラートはtextstatusが「parseerror」であることを示しています。アラートは次のようになります:'status = parsererror、error=jQuery15109695890768120119_1357924928198は呼び出されませんでした'

$(function() {  
$("#tags").autocomplete({
source: function( request, response ) {
    $.ajax({
        url: 'http://localhost:8181/jquery/api/states/regex?stateName='+request.term,
        method: 'GET',
        dataType: 'jsonp',
        success: function(json) {
        alert("test");

        },
        error: function(httpRequest, textStatus, errorThrown) { 
        alert("status=" + textStatus + ",error=" + errorThrown);
        }
    });
}
})

APIは次のようなものを返します。

[

    {
        "id": 12,
        "stateName": "Vermont",
        "intPtLon": -72.673354,
        "intPtLat": 44.0605475,
        "stUsps": "VT"
    },
    {
        "id": 20,
        "stateName": "Virginia",
        "intPtLon": -78.6681938,
        "intPtLat": 37.5222512,
        "stUsps": "VA"
    }

]

次の行を追加すると問題が修正されました。Firefoxではそれほど多くないIEビットで正常に動作します

4

1 に答える 1

3

変更する必要があります

dataType: 'jsonp',

シンプルに

dataType: 'json',

または、本当にJSONPが必要で、JSONを使用できない場合は、サーバー側のリクエストからコールバックパラメータを取得し、次のようにレスポンスをラップする必要があります。

Request ["callback"] + "(" + string_with_json_response + ")";

したがって、結果では次のようになります。

jQuery15109695890768120119_1357924928198('{"response":"val"}');
于 2013-01-11T17:36:21.237 に答える