Hussein Zawawi
Hussein Zawawi

Reputation: 2927

WebMethod Error

I am getting "NetworkError: 500 Internal Server Error - http://localhost:5963/default.aspx/Call" when am calling this server side function using jquery

<html>
    <head>
        <script src="scripts/jquery-1.2.6-vsdoc.js" type="text/javascript"></script>
        <script type="text/javascript">
            $(document).ready(function () {
                $("#btn").click(function () {
                    $.ajax({
                        type: "POST",`enter code here`
                        url: "default.aspx/Call",
                        data: "{}",
                        contentType: "application/json; charset=utf-8",
                        async: true,
                        dataType: "json",
                        success: function (msg) {
                            alert("sdsd");
                        }
                    });
                });
            });

        </script>
    </head>
    <body>
        <form id="form1" runat="server">
            <asp:RadioButton  runat="server" ID="btn" Text="A" />
        </form>
    </body>
</html>

[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public static void Call(string value)
{
    var x = value;
}

Upvotes: 1

Views: 2133

Answers (3)

Simon
Simon

Reputation: 2830

The first thing you need to do is use the FireBug console. That will tell you what the error is.

But your code won't work because your return type is void. You actually need to return something back to the client. Change it to this:

[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public static string Call(string value)
{
    var x = value;
    return x; // Silly example
}

Upvotes: 1

Haythem Tlili
Haythem Tlili

Reputation: 566

First of all this script won't return anything because you're using the wrong id of a server control. When a server control is rendered, it's id changes. Try using :

$("#<%=btn.ClientID %>")

You have another problem. You're calling an overloaded web method, so you need to pass some data :

data: "{'value': 'somevalue'}",

Hope this will help.

Upvotes: 3

Beniamin
Beniamin

Reputation: 3228

Does this path scripts/jquery-1.2.6-vsdoc.js give you proper jQuery file? It looks like you're trying to load vsdoc file as a normal library.

Upvotes: 1

Related Questions