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') 也检查你的选择器。在点击事件中放置一条警报消息并查看

于 2012-09-05T13:14:41.293 回答
0

尝试更改此行:

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

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

编辑:

我不确定这是否是问题的原因,但这是我注意到我们的 jQuery ajax 调用之间不同的一件事。此外,更改了结果字符串以反映@dana 在我的回答评论中的批评。

于 2012-09-05T13:13:01.170 回答
0

在您的代码中,我可以看到:dataType:“json”,

但是您不是通过 C# 函数发送 Json ...当您告诉 ajax dataType 是 json 时,它将 JSON.parse() 响应。也许这就是失败的地方。尝试更改数据类型,或删除它(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 回答
0

请在 Jquery 函数中更改以下行。

数据:{用户名1:用户名,名字1:名字},

数据:"{'username1':'" + 用户名 + "','firstname1':'" + firstname + "'}",

希望这会帮助你。

于 2012-09-05T13:16:17.317 回答