REST API 调用显示 404 错误



我正在尝试在 rest api 的调用后发送数据。由于数据很大,所以我无法使用查询字符串发送它。 下面是我的Ajax帖子电话,

var urlstring = 'http://localhost/PersonAPI/api/Operations/TestMethod'
$.ajax({
type: "POST",
url: urlstring,
contentType: "application/json; charset=utf-8",
dataType: "json",
data:
{
'employeedetails':JSON.stringify(exceljson)
},
success: function (data) {
//Some operation

}
});

我的 Rest api 包含多个发布方法, 下面是 API 控制器,

public class OperationsController : ApiController
{
[System.Web.Http.HttpPost]
[HttpRoute("api/Operations/UploadDetails")]
public HttpResponseMessage UploadDetails(string EmployeeDetails)
{
//SomeCode
return  Request.CreateResponse(HttpStatusCode.OK, response.GenerateResponse());
}

[System.Web.Http.HttpPost]
[System.Web.Http.ActionName("TestMethod")]
public HttpResponseMessage TestMethod(string EmployeeDetails)
{
//SomeCode
return Request.CreateResponse(HttpStatusCode.OK, response.GenerateResponse());
}
}

发送呼叫后,它显示 404 错误。 我尝试使用表单数据,但它返回字符串数组。 我正在传递对象列表。此对象有 6 个属性。输入列表在从jquery传递时被转换为json字符串。 我不知道如何传递数据

目前,EmployeeDetails需要一个查询字符串参数。您应该使用[FromBody]

[System.Web.Http.HttpPost]
[System.Web.Http.ActionName("TestMethod")]
public HttpResponseMessage TestMethod([FromBody]EmployeeDetails employeeDetails)
{
//SomeCode
return Request.CreateResponse(HttpStatusCode.OK, response.GenerateResponse());
}

并创建相应的模型:

public class EmployeeDetails
{
// add your properties
}

在前端,您的请求对象应如下所示:

{
type: "POST",
url: urlstring,
contentType: "application/json; charset=utf-8",
dataType: "json",
data: JSON.stringify(exceljson)
}

> 404 错误表示客户端能够与给定服务器通信,但服务器找不到请求的内容。我认为您应该首先在POSTMAN中检查您的API。它是否有效。我可以看到您的后端代码吗,所以我可以尝试解决您的问题

当我使用 HttpRoute 时,这个问题已经解决了

下面是代码,

[HttpRoute("api/operations/TestMethod")] 
public HttpResponseMessage TestMethod(string EmployeeDetails)
{
//SomeCode
return Request.CreateResponse(HttpStatusCode.OK, response.GenerateResponse());
}

相关内容

最新更新