使用Ajax Jquery和asmx服务获取Id的数据

时间:2018-03-05 14:42:22

标签: jquery asp.net ajax web-services asmx

我想通过Id获取选定的员工数据,因此会弹出一个模态并显示此Id的数据。 Id作为参数进行解析,但asmx服务最终不会触发。 这是客户端代码:

Msg 245, Level 16, State 1, Line 384
Conversion failed when converting the varchar value 'CREATE SEQUENCE dbo.ID_Sequence
        AS INT
        START WITH ' to data type int.

这是服务器端代码:

 function getEmployeebyID(Id) {
        $("#ModalTitle").html("Update Employee");
        $("#MyModal").modal();
        var Id = Id;

        $.ajax({
            url: "EmployeeService.asmx/GetEmployeeById",
            type: "GET",              

            dataType: "json",
            data: { Id: Id },
            success: function (data) {


                $('#txtFirstName').val(data[0].FirstName);
                $('#txtLastName').val(data[0].LastName);
                $('#txtGender').val(data[0].Gender);
                $('#txtJobTitle').val(data[0].JobTitle);
                $('#txtSalary').val(data[0].Salary);
                $('#txtHireDate').val(data[0].HireDate);


            },
            error: function (errormessage) {
                alert(errormessage.responseText);
            }
        });
        return false;
    }

当我运行数据时调用数据时,服务器端代码正常工作,因此问题出在客户端并抛出:请求格式无法识别,因为url意外地以/ GetEmployeeById结尾 据我检查过的元素,我看到了这个错误:localhost:50791 / Services / EmployeeService.asmx / GetEmployeeById?Id = 42 500(内部服务器错误)。无法弄清楚发生了什么......

2 个答案:

答案 0 :(得分:1)

试试这个

 function getEmployeebyID(Id) {
        $("#ModalTitle").html("Update Employee");
        $("#MyModal").modal();
    var Emp={
    Id = Id
    }
        $.ajax({
            url: "../EmployeeService.asmx/GetEmployeeById",
            type: "POST",              
            contentType : "application/json; charset=utf-8",     
            dataType: "json",
            data: JSON.stringify(Emp),
            success: function (data) {


                $('#txtFirstName').val(data[0].FirstName);
                $('#txtLastName').val(data[0].LastName);
                $('#txtGender').val(data[0].Gender);
                $('#txtJobTitle').val(data[0].JobTitle);
                $('#txtSalary').val(data[0].Salary);
                $('#txtHireDate').val(data[0].HireDate);


            },
            error: function (errormessage) {
                alert(errormessage.responseText);
            }
        });
        return false;
    }

答案 1 :(得分:1)

最后来自How do I fix a "Request format is unrecognized for URL..." error in a web service running in IIS?  我在web.config上添加了

 <webServices>
  <protocols>
    <add name="HttpGet"/>
    <add name="HttpPost"/>
  </protocols>
</webServices>

并从

中删除
 $('#txtFirstName').val(data[0].FirstName);

[0] 一切正常。