Jquery Ajax无法调用Web服务

时间:2014-08-26 20:31:25

标签: jquery ajax

无法加载资源:服务器响应状态为500(内部服务器错误) System.InvalidOperationException:InsertData Web Service方法名称无效。    在System.Web.Services.Protocols.HttpServerProtocol.Initialize()    在System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type,HttpContext context,HttpRequest request,HttpResponse response,Boolean& abortProcessing)


## `Heading` # <script type="text/javascript">
    $(function () {
        $('#btnSubmit').click(function () {
            var list = ["a", "b", "c", "d"];
            var jsonText = JSON.stringify({ list: list });
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: "WebService.asmx/InsertData",
                data: "{'FirstName':'" + $('#txtFirstName').val() + "','LastName':'" + $('#txtLastName').val() + "','City':'" + $('#txtCity').val() + "','EmailID':'" + $('#txtEmailID').val() + "'}",
                success: function (response) {
                    var obj = response.d;
                    if (obj == 'true') {
                        $('#txtproductname').val('');
                        $('#txtdescription').val('');
                        $('#txtdate').val('');
                        $('#txtprice').val('');
                        $('#lblmsg').html('Data Inserted Successfully');
                    }
                },
                failure: function (result) {
                    alert(result);
                }
            });
        });
    });
</script>#
public static string InsertData(string EngPName, string EnDesc, string Mimage, string Drivers)
{
    string retMessage = string.Empty;

    using (SqlConnection con = new SqlConnection(ConnectionString))
    {
        string Query = "insert into Products(EngPName, EnDesc, Mimage,Drivers) values(@EngPName,@EnDesc,@Mimage,@Drivers)";
        using (SqlCommand cmd = new SqlCommand(Query, con))
        {
            con.Open();
            cmd.Parameters.Add("@EngPName", EngPName);
            cmd.Parameters.Add("@EnDesc", EnDesc);
            cmd.Parameters.Add("@Mimage", Mimage);
            cmd.Parameters.Add("@Drivers", Drivers);
            int AffectedRow = cmd.ExecuteNonQuery();
            if (AffectedRow == 1)
            {
                retMessage = "true";
            }
            else
            {
                retMessage = "false";
            }
        }
        return retMessage;
    }
}

1 个答案:

答案 0 :(得分:0)

此错误(500)通常表示被调用方法无法解释传递的数据。 ajax调用的data属性似乎无效。请尝试使用此代码:

var data = {"firstName": $("#txtFirstName").val(), "lastName": $("#txtLastName").val(), "City": $("#txtCity").val(), "EmailID": $("#txtEmailID").val()};

$.ajax({
...

data: JSON.stringify(data),

...

jsfiddle