Вызов интерфейса AJAX API не показывает все свойства возвращаемого объекта - PullRequest
0 голосов
/ 03 августа 2020

У меня необычная проблема.

Я делаю запрос AJAX к моему backend API.

API простой и просто возвращает массив таких объектов ... .

API:

    [HttpGet()]
    public IActionResult Get()
    {
        var objects = NightSkyObjectList.GetAllObjects(location);
        return Ok(Map(objects));
    }

Мой интерфейс вызывает этот API и создает объектную переменную для каждого возвращенного объекта, как вы видите здесь:

Внешний интерфейс:

return $.ajax("/api/astronomy/, {
    type: "GET",
    contentType: "application/json",
    success: function(response, status, XHR) {
        var calObj = [];
        $.each(response, function(index, skyObject){
            var object = {
                id: skyObject.id,
                galaxyId: skyObject.galaxyId,
                solarSystem: skyObject.solarSystem,
                objName: skyObject.objectName,
                galaxy: skyObject.galaxy,
                objType: skyObject.type  
            };
            console.log("Object JSON Data: ", object);
            calObj.push(object);
        });
    }

Проблема в том, что свойство, называемое galaxy, всегда не определено во внешнем интерфейсе.

Я устанавливаю точку останова в Visual Studio прямо тогда, когда API возвращает данные, и я вижу объект 'галактика'.

Но когда я создаю console.log во внешнем интерфейсе, я вижу все остальное, но объект галактики всегда не определен.

Я нахожусь в потеря здесь, потому что я не могу понять, как еще отлаживать или что происходит с галактикой.

Что еще я могу сделать?

Спасибо!

1 Ответ

1 голос
/ 03 августа 2020

Похоже, ваша функция Map не отображает объект галактики.

Вы можете попробовать посмотреть, заполняется ли объект Galaxy, удалив его из функции Ok и присвоив его переменной, после чего вы должны установить точку останова и посмотрите, является ли объект нулевым или нет, например:

 [HttpGet()]
 public IActionResult Get()
 {
    var objects = NightSkyObjectList.GetAllObjects(location);
    var mapResponse = Map(objects); //Place your breakpoint here and take a look if Map is returning the galaxy object
    return Ok(mapResponse);
 }
...