需要AJAX GET请求400非空主体

时间:2019-09-05 07:15:37

标签: ajax asp.net-mvc asp.net-web-api postman asp.net-ajax

我正在使用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的代码,但它们都没有帮助。他们仍然收到相同的错误。

谢谢。

0 个答案:

没有答案