$ http.post请求无法在控制器

时间:2016-04-05 11:46:17

标签: angularjs http-post http-status-code-404 asp.net-web-api2

我的 Controller 中有 AddCategory()方法:

[RoutePrefix("api")]
    public class CategoryController : ApiController
    {
            ....
      [Route("addCategory")]
      [HttpPost]
      public void AddCategory(string category)
      {
        var getCat = category;
      }

在我的 Home.html 我有按钮保存新类别我为它写了$ http.post方法:

 var testString = "TEST String";
            var req = {
                method: 'POST',
                url: '/api/addCategory',
                data: testString,

            };
            $http(req).then(function successCallback(response) {
                console.log("Success");
                }, function errorCallback(response) {
                    console.log("Eror");
                });

但我有下一个错误:

  

angular.js:11442 POST http://localhost:6059/api/addCategory 404(不是   实测值)

开发控制台中的网络书签中,我发现错误: enter image description here

可能很重要,但我在 WebApiConfig.cs 中禁用 XML

var json = GlobalConfiguration.Configuration.Formatters;
        json.JsonFormatter.UseDataContractJsonSerializer = true;
        json.Remove(json.XmlFormatter);

可能有人知道我怎么能改变它?谢谢你的回答!

2 个答案:

答案 0 :(得分:2)

你的方法Post需要返回IHttpActionResult。或者你的请求http总是返回代码404。

试试这个:

[RoutePrefix("api")]
    public class CategoryController : ApiController
    {
            ....
      [Route("addCategory")]
      [HttpPost]
      public IHttpActionResult AddCategory(string category)
      {
        var getCat = category;
        if(getCat != null)
          return Ok();

        return NotFound();
      }

我建议你在C#中用$ resource angular使用Api Rest。在我看来,这是最好的模式。

答案 1 :(得分:0)

问题与您正在呼叫的服务有关,404表示未找到:

404 http error

因此,服务URL或本地服务器中的某些内容无效。