我正在使用ASP.Net MVC API,.Net Core 2.2.0。当前正在努力通过AJAX GET请求通过发送ID来获取一些数据。
我的控制器:
[HttpGet]
public async Task<int> GetBeaconCount(EntityDTO input)
{
try
{
var artifact = await _beaconService.GetBeaconCount(input);
return artifact;
}
catch (System.Exception)
{
throw;
}
}
//Entity DTO has only: private guid id;
我的AJAX:
function GetBeaconCount() {
var beaconCountDefer = $.Deferred();
beaconCountDefer = $.Deferred();
var options = {};
options.url = "https://localhost:44327/api/Beacon/GetBeaconCount";
var obj = {};
obj.Id = locationId;
options.type = "GET";
options.data = JSON.stringify(obj);
options.dataType = "json";
options.contentType = "application/json";
options.processData = false;
options.success = function (data) {
beaconCountDefer.resolve('yay');
$("#artifactCount")[0].textContent = data;
};
options.error = function (e,msg) {
beaconCountDefer.reject('boo');
alert(msg);
};
$.ajax(options);
return beaconCountDefer.promise();
}
问题:
当我使用“邮递员”测试api端点时,一切都很好。我可以发送数据并获取返回的数据。
但是,一旦我尝试用ajax请求执行此操作,我就会得到以下响应JSON: “ {\” errors \“:{\” \“:[\”需要非空的请求正文。\“]},\” title \“:\”发生一个或多个验证错误。\“,\ “状态\”:400,\“ traceId \”:\“ 0HLPHP0G7TVUT:00000008 \”}“
控制器和服务中都有多个断点,但都未触发/捕获到这些断点。这意味着请求实际上无法到达控制器主体。
我还尝试了从邮递员导出为AJAX或XHR的代码,但它们都没有帮助。他们仍然收到相同的错误。
谢谢。