我写了一个WebApi项目,它将firstname和lastname作为输入参数并返回所有信息。我使用RestShop来调用webApi并返回数据。这是工作并返回但由于某种原因我必须使用Ajax调用来调用api。我无法让Ajax调用工作。我在这个网站上使用了不同的链接,但它返回空数据和错误。它为两个警报重新调整为空:alert(FirstName);并在结束时返回[object] [object]错误。
这是正在运作的RestShop:
public List<Data> GetData(string FirstName, string LastName)
{
RestClient _client = new RestClient();
string _url = "http://localhost:51142";
_client = new RestClient(_url);
//DocGen/Documents/GetByFLName/TERRI/TIMMERMAN
var request = new RestRequest("Gen/Doc/GetByFLName/{FirstName}/{LastName}", Method.GET) { RequestFormat = DataFormat.Json };
request.AddParameter("FirstName", FirstName, ParameterType.UrlSegment);
request.AddParameter("LastName", LastName, ParameterType.UrlSegment);
var response = _client.Execute<List<Data>>(request);
if (response.Data == null)
throw new Exception(response.ErrorMessage);
return response.Data;
}
这是调用相同方法的Ajax代码,它返回,[object] [object]错误。
function GetEmployee() {
jQuery.support.cors = true;
var FirstName = $('#FirstName').val();
alert(FirstName);
var LastName = $('#LastName').val();
alert(LastName);
$.ajax({
url: 'http://localhost:51142/Gen/Doc/GetByFLName/'+ '/' + FirstName + LastName,
type: 'GET',
dataType: 'json',
success: function (data) {
alert(data);
},
error: function (x, y, z) {
alert(x + '\n' + y + '\n' + z);
}
});
}
这是文本框:
First Name:
@Html.TextBox("FirstName")
Last Name:
@Html.TextBox("LastName")
这是我在webApi中的方法:
public IHttpActionResult GetByFLName(string id1, string id2)
{
DAL.DataManager dal = new DAL.DataManager();
CMSIGateway gateway = new CMSIGateway();
gateway = dal.Get_CM_BY_FLName(id1, id2);
if (gateway == null)
{
return NotFound();
}
return Ok(gateway);
}
答案 0 :(得分:0)
你把不正确的参数放到网址上应该是这样的
url: 'http://localhost:51142/Gen/Doc/GetByFLName?id1=' + FirstName + "&id2=" +LastName