【问题标题】:Ajax call to WebAPI goes to Error instead of success对 WebAPI 的 Ajax 调用转到错误而不是成功
【发布时间】:2017-05-19 15:17:12
【问题描述】:

我有一个对 WebApi 方法的 Ajax 调用。我的电话是这样的:

 function CalculateAmortizationScheduleAPI()
    {

        $.ajax({
            url: 'http://localhost:62815/v1/APR/Calculate',
            type: 'POST',
            dataType: 'json',
                data: {
                    "LoanAmount": 200000,
                    "Costs": 100,
                    "Term": 15,
                    "Rate": 2.2,
                    "RateType": 2,
                    "Points": 1,
                    "MIRate": 2.2,
                    "UFMIRate": 2,
                    "FixedTerm": 5,
                    "FirstPaymentDate": "10/10/2017",
                    "RateChangeDate": "10/10/2018",
                    "AdjustTerm": 2,
                    "IndexRate": 2,
                    "Margin": 2,
                    "AdjustmentCapFirst": 2,
                    "AdjustmentCap": 2,
                    "AdjustmentCapLifetime": 2,
                    "EstimatedPropertyValue": 2,
                    "CancelMIPMonths": 2,
                    "CancelMIPLTV": 2,
                    "AdditionalPricipalPayment": 2,
                    "ConstantPaymentValue": 2
                },
                success: function (data) {
                    alert("success");

            },
            error: function () {
                alert("Error");
            },
        });
    }

这是我放置断点时 Ajax 调用成功命中的 WebApi 方法,并且返回值具有作为对象的值。

     [HttpPost]
     public Dictionary<int, AmItem> Calculate([FromBody]AmArguments 
     lAmArguments)
    {

     .....

     return AmSchedule;
      }

问题是即使 Ajax 调用命中了方法,但 Success 方法没有执行,屏幕上会出现错误警报,而且我不知道如何捕获复杂对象的返回值。

【问题讨论】:

  • 将您的错误函数写为 error: function(jqXHR, textStatus, errorThrown) 并查看 jqXHR.status 和 jqXHR.responseText 以了解您的 API 调用究竟发生了什么。
  • 你 ajax 期望 json 作为响应确认你正在返回 json
  • @omi 方法返回对象为 Dictionary
  • @Hakunamatata 当我这样做时根本不会出现任何弹出窗口。
  • @nik 在 Google chrome 中,您可以在 ajax 代码中放置一个断点并单步执行。在 chrome 中按 F12 并在源选项卡中找到您的 ajax 函数并放置断点并单步执行您的代码。

标签: jquery ajax asp.net-web-api


【解决方案1】:

数据类型:'json',

从服务器返回数据的平均类型应该是json

确保您将 json 对象返回给 ajax 成功回调 - 如果没有,那么您需要将其更改为 数据类型:'文本',

弃用通知:jqXHR.success()、jqXHR.error() 和 jqXHR.complete() 回调从 jQuery 3.0 开始被删除。您可以改用 jqXHR.done()、jqXHR.fail() 和 jqXHR.always() 更多详情请访问-Visit

我希望这对你有用 - 你仍然面临错误请在下面评论

【讨论】:

  • 让我知道你是否改变了返回类型?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-31
  • 1970-01-01
  • 2021-02-09
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
相关资源
最近更新 更多