C# RESTAPI调用显示404错误
我试图在RESTAPI的post调用中发送数据。由于数据非常大,所以我无法使用查询字符串发送数据。 下面是我的Ajax post调用C# RESTAPI调用显示404错误,c#,jquery,rest,C#,Jquery,Rest,我试图在RESTAPI的post调用中发送数据。由于数据非常大,所以我无法使用查询字符串发送数据。 下面是我的Ajax post调用 var urlstring = 'http://localhost/PersonAPI/api/Operations/TestMethod' $.ajax({ type: "POST", url: urlstring,
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包含多个post方法,
下面是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字符串。
我不知道如何传递数据。404错误表明客户端能够与给定的服务器通信,但服务器找不到请求的内容。我认为您应该首先在POSTMAN中检查您的API。它是否工作正常。我是否可以查看您的后端代码,以便目前尝试解决您的问题,
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)
}
这个问题在我使用HttpRoute时得到了解决 下面是代码
[HttpRoute("api/operations/TestMethod")]
public HttpResponseMessage TestMethod(string EmployeeDetails)
{
//SomeCode
return Request.CreateResponse(HttpStatusCode.OK, response.GenerateResponse());
}
你能告诉我们urlstring的值吗?还有你的控制器声明。关于404是什么意思的困惑吗?不,我正在寻找404错误出现的原因,但是你没有提供控制器定义(只有方法),你没有提供,我认为这是一个关键部分,您正在使用的URL。您的URL应该是
http://localhost/PersonAPI/api/Operations/TestMethod
而不是localhost://PersonAPI/api/Operations/TestMethod
。你为什么有PersonAPI
?它是指虚拟目录吗?OP know that=>否,我正在寻找出现404错误的原因。当我使用查询字符串传递参数时,它可以工作,但由于我有更多数据,查询字符串由于其大小限制而失败。这是不工作的。。是否存在任何可能的路由问题?必须是。它对我有用-它解决了404问题。如果我发布到http://server/api/Operations/TestMethod
它点击并提供数据。我不明白它现在是怎么不工作的,当你们之前说它会成功的时候?是的,它成功了,但数据并没有传递给api方法。API方法“TestMethod”得到空值。你能用我的系统遥控器检查一下吗。我的电子邮件id是pingaledu@gmail.com. 请将您的id邮寄给我,以便我与您共享团队查看器credentials@Pavan哦,我现在明白你的问题了。您试图为一个body参数传递一个名称,这是不可能的,除非您使用multi-part。我也尝试过删除这个名称。所以我改变了ajax数据:exceljson。还尝试了JSON.stringify(exceljson)。但没有起作用