无法将删除功能从Ajax jQuery调用到Asp.net API函数

时间:2019-01-10 08:20:25

标签: c# asp.net asp.net-apicontroller

我正在使用jQuery 3.2.1。我正在尝试通过Ajax jQuery调用API。

我正在跟踪一个示例和类似这样的代码:

(() => {
    function delTest() {
        $.ajax({
            url: 'http://localhost:3413/api/person?ID=100',
            type: 'DELETE',
            dataType: 'json',
            data: { "": "Sourav Kayal" },
            success: function (data, textStatus, xhr) {
                console.log(data);
            },
            error: function (xhr, textStatus, errorThrown) {
                console.log('Error in Operation');
            }
        });
    }
})();

和API

   public class personController : ApiController  
    {  
        [HttpDelete]  
        public string Delete([FromUri] int ID, [FromBody] String name)  
        {  
            return "Delete Operation" + "ID:- " + ID + "Name:- " + name;  
        }  
    }


protected void Application_Start()
    {
        GlobalConfiguration.Configure(WebApiConfig.Register);

        AreaRegistration.RegisterAllAreas();
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
    }

但是,它现在不起作用。

返回错误:找不到404

1 个答案:

答案 0 :(得分:1)

我正在使用以下代码,并且在我的机器上可以正常工作。我认为您需要在URL中添加方法名称delete,它应该看起来像“ http://localhost:3413/api/person/Delete?ID=100

<script type="text/javascript">

        function delTest() {

        $.ajax({
            url: 'http://localhost:3413/person/Delete?ID=100',
            type: 'DELETE',
            dataType: 'json',
            data: { name: "Sourav Kayal" },
            success: function (data, textStatus, xhr) {
                console.log(data);
            },
            error: function (xhr, textStatus, errorThrown) {
                console.log('Error in Operation');
            }
        });
    }
</script> 

<input type="button" name="delete" onclick="delTest()" value="makeCall"/>

和API代码:

  [System.Web.Http.HttpDelete]
        public string Delete([FromUri] int ID, [FromBody] String name)
        {
            return "Delete Operation" + "ID:- " + ID + "Name:- " + name;
        }