2

別の functions.js ファイルで json Web サービスを呼び出す次のコードがあります。

function getMajorGroups(){

var element = $(".item-group-button");

$.ajax({
    type:"GET",
    url:"localhost:6458/posApplication/getAllMajorGroups",
    data:"{}",
    contentType:"application/json; charset=utf-8",
    dataType:"json",
    done:successResult(majorGroups),
    fail:errorResult(error)
});
}

function successResult(majorGroups){
    var mGroups = response.d;
    $("#item-groups").empty();

    $.each(majorGroups ,function(){
        var h3 = $('h3').append(majorGroups.code);
        element.append(h3);
        $("#item-groups").prepend(element);
    });
}

function errorResult(error){
    alert("error");
}

Web ページを実行し、firebug を使用して手順をトレースすると、スクリプトが実行されていることがわかります。ただし、ajax 呼び出し内で成功または失敗のコードは実行されません。私はここで何か悪いことをしていますか?

以下は、サービスが返す文字列の例です。

{"majorGroups":[{"update":"false","hasMore":"false","status":"A","description":"Beverage","majorGroupId":"48","code" :"飲料"},{"update":"false","hasMore":"false","status":"A","description":"ランドリー","majorGroupId":"51","code" :"ランドリー"},{"update":"false","hasMore":"false","status":"A","description":"Cigarette","majorGroupId":"50","code" :"タバコ"},{"アップデート":"false","hasMore":"false","ステータス":"A","説明":"Food","majorGroupId":"47","code":"Food"},{"update":"false","hasMore":"false","status":"A","description": "Health Center","majorGroupId":"52","code":"Health Center"}],"failure":"false"}

4

1 に答える 1

2

$.ajaxには という名前のプロパティがありませんfailoureerror次のように使用する必要がありますerror: errorResult

それに加えて、Chrome 開発ツールまたは同様のツールの [ネットワーク] タブを介してリクエストが行われていることを確認してください。生の応答の内容を確認し、それが必要なものであることを確認してください。リクエストが失敗した場合は、方法が表示されるか、少なくともエラー コードが表示されます。

これまでのところすべて問題ない場合は、DOM の準備ができたら DOM 要素を追加するようにしてください。$(function(){ /* your stuff here */ })

編集:

それは方法doneではなく、fail使用する必要があります。jQuery ajax 呼び出しは promise を返します。

$.ajax({
  url : "..."
  /* omitted */
}).done(successCallback).fail(failCallback)

ここで、successCallback は、定義済みの成功関数のような関数名か、次のような無名関数のいずれかです。

.done(function(response){
  // do stuff with response
} 

jQuery のドキュメントを注意深く読む必要があると思います。

また、あなたの$.each呼び出しはちょっと壊れています-提供された関数のパラメーターをスキップしました$.each

于 2013-04-16T09:12:56.397 に答える