1

パラメータ pkId を期待し、結果を返すローカル ホストで Web サービスを呼び出そうとしています。WebService は完璧に動作しますが、JQuery から呼び出すと、データが返されません。Web サービス (データ) 部分のパラメーターを設定するためにほとんどすべての組み合わせを試しましたが、結果を得ることができず、実際の痛みはエラーが発生しないことです。

    $.ajax({
        type: "POST",
        url: "http://localhost/WSTest/Service.asmx/AuthorGetById",
        data: "{pkId :'" + pkId + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            return msg.d;
        }
    });
4

3 に答える 3

1

Success は、AJAX からのコールバックとして呼び出されます。これは、AJAX 呼び出しを行う関数からの戻りとしてではなく、その結果が AJAX jQuery 関数に返されることを意味します。result.d off をそれを利用する別の関数に渡す必要があります。成功関数内にブレークポイントを配置して、結果が保持する値を確認しましたか?

AJAX 呼び出しを使用して Web サービスを使用する方法については、以下を確認してください。

jquery を使用して aspnet json Web サービスを使用する/

于 2011-02-19T18:59:14.643 に答える
0

これは答えではありませんが、そこに到達するのを助けることを意味します。


エラーが発生した場合でも、エラーをまったく処理していないため、エラーは発生しません。
また、ASP.NET 3.5以降の機能以降、メッセージに「d」が含まれているかどうかを確認する価値があります。
また、msg.dを返さないでください。アラートを送信してください。

サンプルは

$.ajax({
    type: "POST",
    url: "http://localhost/WSTest/Service.asmx/AuthorGetById",
    data: "{pkId :'" + pkId + "'}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
     success: function (msg) {
         var datum = msg.hasOwnProperty("d")? msg.d : msg;
         alert("Success" + datum);
        }
    error:function (xhr, ajaxOptions, thrownError){
        alert("Error");
    }
});
于 2011-02-19T18:49:43.087 に答える
0

私は答えを見つけました。Actullay 私はパラメーターを正しく渡していて、firebug の応答に気づいていましたが、成功時にそれをキャッチできませんでした。なぜなら、私の Web サービスメソッドは void を返すからです。文字列を返すように変更し、正常に動作するようにしました。

于 2011-02-21T17:01:01.560 に答える