Mam niezwykły problem.

Robię prośbę Ajax do mojego API Backend.

API jest prosty i po prostu zwraca tablicę takich przedmiotów ....

API:

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

Mój frontend nazywa ten interfejs API i tworzy zmienną obiekt dla każdego zwróconego obiektu, tak jak widać tutaj:

Front End:

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);
        });
    }

Problem polega na tym, że właściwość zwana, Galaxy, jest zawsze niezdefiniowana w frontend.

Umieściłem punkt break w studio Visual, gdy API zwraca dane, a widzę obiekt "Galaxy".

Ale kiedy wykonuję konsolę.log na front-end, widzę wszystko inne, ale obiekt Galaxy jest zawsze niezdefiniowany.

Jestem tutaj utrata, ponieważ nie mogę zrozumieć, jak inaczej debugować lub co dzieje się z galaktyką.

Czy mogę coś jeszcze zrobić?

Dzięki!

0
SkyeBoniwell 3 sierpień 2020, 21:07

1 odpowiedź

Najlepsza odpowiedź

Wygląda na to, że funkcja mapy nie mapuje obiektu Galaxy.

Możesz spróbować zobaczyć, czy obiekt Galaxy jest wypełniający usuwanie go z funkcji OK i biorąc go na zmienną, po czym musisz umieścić punkt przerwania i sprawdzić, czy obiekt jest nieularny, czy nie, przykład:

 [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);
 }
1
Lucas Souza 3 sierpień 2020, 19:02