【发布时间】:2015-10-22 21:31:35
【问题描述】:
我有一个 Web API (v >2.0) 网络服务,其控制器不完全响应我的 ajax 请求。
这是控制器
public class MyController : ApiController
{
[Route("api/object")] //working
public string Method1(string param)
{
return JsonConvert.SerializeObject(Service.GetBy(param));
}
[Route("api/object")] //not working
[HttpPost]
public void Method2(string param)
{
Service.Insert(JsonConvert.DeserializeObject<MyObject>(param));
}
}
我的 ajax 请求(通过 jquery)是
$.ajax({
url : 'http://localhost/api/object',
type : 'POST',
data : { param : JSON.stringify(/* some stuff */) }
success : successHandler,
error : errorHandler
});
GET 方法有效,但 POST 无效,它返回代码 404。
有趣的是,在我提交 POST 请求之前,两个步骤中的同一页面调用同一页面以检索 JSONified MyObject,并且按预期工作
我在 webservice Web.Config 和 ajax 调用中都配置了 CORS,我怎样才能让它正常工作?
【问题讨论】:
-
当你说它不起作用时,你从请求中得到什么状态码?另外,为什么还要发送一个序列化的 JSON 字符串呢?只需发送带有标准参数的请求,让模型绑定器为您工作。
-
用返回码编辑
标签: jquery asp.net ajax asp.net-web-api