【发布时间】: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