C# Ajax调用不起作用

C# Ajax调用不起作用,c#,javascript,jquery,ajax,C#,Javascript,Jquery,Ajax,我正在对C#函数进行ajax调用,但它没有被调用 这是ajax调用: $('#button1 button').click(function () { var username = "username_declared"; var firstname = "firstname_declared"; $.ajax({ type: "GET", url: "practiced_final.aspx/ServerSideMethod",

我正在对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代码:

此方法未被命中,并显示如下错误消息:

object XMLHttpRequest]parsererrorundefined

非常感谢您的帮助。

请尝试更改此行:

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

编辑:

我不确定这是否是问题的原因,但我注意到jQueryAjax调用之间有一点不同。另外,更改了结果字符串以反映@dana在我的答案评论中的批评

$('#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')
同时检查u选择器。将一条警报消息放在click事件中,然后在我可以看到的代码中查看:数据类型:“json”

但是你没有通过你的C#函数发送Json。。。当您告诉ajax该数据类型是json时,它将json.parse()响应。也许这就是失败的地方。 尝试更改或删除数据类型(jQuery将尝试猜测它)


这可能会有帮助,请在Jquery函数的下面一行进行更改

数据:{username1:username,firstname1:firstname}

数据:“{'username1':'“+username+”,'firstname1':'“+firstname+”}”


希望这会对您有所帮助。

最后它开始工作了。这是最后的代码。 谢谢大家明智的回答

                $.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;

享受。

我将首先使用Fiddler检查发送和接收的数据。除了使用Fiddler检查请求外,您还可以在浏览器中打开它并查看来自IIS的错误消息。它不起作用,但是现在错误消失了。C#方法仍然没有命中。:)k gud我会寻找它。我可能会在某个时候得到一些东西。用户输入应该使用
JSON.stringify()
@ThulasiRam转义相同的问题。没有错误,但方法无法命中…:(顺便说一句,谢谢。它不起作用,但现在错误消失了。C#方法仍然没有得到一个hitselector是好的。我用alert box检查了它。k。你用mvc 3或asp.net?用户输入应该用
JSON.stringify()
转义。这只是为了让ajax调用不那么容易出错,还是
JSON.stringify()背后有更多的理由
?考虑这样一种情况:
var firstname=“D'Angelo”
。需要用反斜杠转义单引号以创建有效的JSON字符串:
D'Angelo
JSON.stringify()
处理该情况和其他许多情况。很高兴知道这一点。我不知道
JSON.stringify()
在您发表评论之前,谢谢您提供的信息。我将编辑我的答案,尽管我的答案似乎不够。应使用
JSON.stringify()转义用户输入。
请更改类型Get to POST。是的,将其更改为POST是可行的。您能告诉我Get不起作用的原因吗谢谢。希望这对您有所帮助。
$('#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') //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;
                $.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;