0

C# 関数への ajax 呼び出しを行っていますが、呼び出されていません。

これは ajax 呼び出しです。

$('#button1 button').click(function () {
    var username = "username_declared";
    var firstname = "firstname_declared";
    $.ajax({
        type: "GET",
        url: "practiced_final.aspx/ServerSideMethod",
        data:{username1:username,firstname1:firstname},
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            $('#myDiv').text(msg.d);
        },
        error: function (a, b, c) {
            alert(a + b + c);
        }
    });
    return false;
});

これは C# コードです。

[WebMethod]
public static string ServerSideMethod(string username1, string firstname1)
{
    return "Message from server with parameter." + username1 + "hello" + firstname1;
}

このメソッドはヒットせず、次のようなエラー メッセージが表示されます。

object XMLHttpRequest]parsererrorundefined

どんな助けでも大歓迎です。

4

6 に答える 6

1

最後に動作しています。これが最終的なコードです。皆さんの賢明な回答に感謝します。

                $.ajax({
                 type: "POST",
                 url: "practiced_final.aspx/hello_print",
                 data: "{}",
                 contentType: "application/json; charset=utf-8",
                 dataType: "json",
                 async: true,
                 cache: false,
                 success: function (msg) {
                 $('#myDiv').text(msg.d);
                 }
                 })
                 return false;

楽しみ。

于 2012-09-06T06:09:59.130 に答える
1
$('#button1 button').live('click', function () {
            var username = "username_declared";
            var firstname = "firstname_declared";
            $.ajax({
                url: "/practiced_final.aspx/ServerSideMethod", type: "GET", dataType: "json",
                data: JSON.stringify({ username1: username, firstname1: firstname }),
                contentType: "application/json; charset=utf-8",
                success: function (msg) {
                    $('#myDiv').text(msg.d);
                },
                error: function (a, b, c) {
                    alert(a + b + c);
                }
            });
        });

$('button#button1') または $('#button1') または $('#button1 button') セレクターもチェックします。クリックイベント内に1つのアラートメッセージを入れて見てください

于 2012-09-05T13:14:41.293 に答える
0

Jquery関数で以下の行を変更してください。

データ:{ユーザー名1:ユーザー名、名1:名}、

data: "{'username1':'" + username + "'、'firstname1':'" + firstname + "'}"、

これがお役に立てば幸いです。

于 2012-09-05T13:16:17.317 に答える
0

この行を変更してみてください:

data:{username1:username,firstname1:firstname},

data:JSON.stringify({username1:username,firstname1:firstname}),

編集:

これが問題の原因かどうかはわかりませんが、これは、jQuery ajax 呼び出し間で異なることに気付いた 1 つのことです。また、回答のコメントで @dana の批判を反映するように結果文字列を変更しました。

于 2012-09-05T13:13:01.170 に答える
0

あなたのコードで私は見ることができます: dataType: "json",

しかし、C# 関数を介して Json を送信していません... dataType が json であることを ajax に伝えると、JSON.parse() 応答が返されます。たぶん、そこが失敗の原因です。dataType を変更するか、削除してみてください (jQuery はそれを推測しようとします)。

于 2012-09-05T13:14:48.800 に答える
0
  $('button#button1') //Or check selector put one alert inside onclick
  $('#button1').live('click', function () {
                var username = "username_declared";
                var firstname = "firstname_declared";
                $.ajax({
                    type: "GET",
                    url: "practiced_final.aspx/ServerSideMethod",
                    data: JSON.stringify({ username1: username, firstname1: firstname }),
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (msg) {
                    $('#myDiv').text(msg.d);
                    },
                    error: function (a, b, c) {
                        alert(a + b + c);
                    }
                    })
                    return false;

それは役立つかもしれません

于 2012-09-05T13:15:46.240 に答える