我想通过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(内部服务器错误)。无法弄清楚发生了什么......
答案 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]
一切正常。