首页 > 解决方案 > 如何从 Asp.Net Web API 向 AJAX 调用发送成功或失败状态

问题描述

我正在开发一个 asp.net C# Web API 项目。我正在使用 jQuery AJAX 从客户端发布数据。代码如下。我尝试了两种类型的 AJAX 调用,如下所示。无论 API 成功与否,在 AJAX 中永远不会到达成功或错误下的代码。

Asp.Net Web API Code: 

[HttpPost]
    [Route("SendCustomerDetails")]
    public async Task<IHttpActionResult> SendCustomerDetails([FromBody] String jsonData)
    {

     //Code to process json
     //...
     //...
     resp = await client.PostAsJsonAsync("customer/newcustomer", jObject);

        if (resp.IsSuccessStatusCode)
        {
              //log resp
              return Created(Request.RequestUri.ToString(), resp.StatusCode);
        }
        else{
          //log resp
          return Created(Request.RequestUri.ToString(), resp.StatusCode);
        }
}

Jquery AJAX code1:
$.ajax({
            type: 'POST',
            url: 'http://localhost:49918/SendCustomerDetails',
            dataType: 'json',
            //data: jsonData,
            data: JSON.stringify(jsonData),
            contentType: "application/json"
        }).done(function (data) {
            alert("Success: " + data);
            $('#value1').text(data);
        }).fail(function (jqXHR, textStatus, errorThrown) {
            alert("failure: " + jqXHR.responseText || textStatus);
            $('#value1').text(jqXHR.responseText || textStatus);
        });

Jquery AJAX code2:
$.ajax({
            type: 'POST',
            url: 'http://localhost:49918/SendCustomerDetails',
            dataType: 'json',
            //data: jsonData,
            data: JSON.stringify(jsonData),
            contentType: "application/json",
        success: function(data) {
            alert("Success: " + data);
        },
        error: function (data) {
            alert("error: " + JSON.stringify(data));
        }
            
        });

标签: ajaxasp.net-web-api

解决方案


修复动作

     [HttpPost]
    [Route("~/SendCustomerDetails")]
    public IActionResult SendCustomerDetails(JObject model)
    {
       return Ok(" It is Success");
    }

试试这个代码

$.ajax({
            type: 'POST',
            url: 'http://localhost:49918/SendCustomerDetails',
            data: { model:jsonData},
           success: function(data) {
            alert("Success: " + JSON.stringify(data));
        },
        error: function (data) {
            alert("error: " + JSON.stringify(data));
        }
            
        });

推荐阅读