My Backend возвращает объект, но Angular frontend не распознает его - PullRequest
0 голосов
/ 02 мая 2020

Я хочу анализировать изображения и извлекать из них информацию, используя Azure Cognitive Services. В бэкэнде есть функция для обнаружения лиц по картинке, которая работает правильно:

[HttpPost("detectfaces/{userName}/{fileName}")]
        public ActionResult<List<Face>> DetectFacesFromPic(string userName, string fileName)
        {
            IFaceClient client = Authenticate(this._face_endpoint, this._face_subsciption_key);
            List<Imagen> arrayImages = createUserImgsList(userName);
            string url = arrayImages.Find(i => i.url.Contains(fileName)).url;

            List<Face> faceList = DetectFaceExtract(client, url).Result;



            return Ok(faceList);

        }

И это класс Face:

 public class Face
    {
        public DetectedFace detectedFace;
        public Emotion emotion;
        public string emotionType;
        public List<Accessory> accessories;

        public Face(DetectedFace df, Emotion e, string et, List<Accessory> a)
        {
            this.detectedFace = df;
            this.emotion = e;
            this.emotionType = et;
            this.accessories = a;
        }
    }

Если я отлаживаю, информация исправить в разделе проверки: Ответ бэкэнда

Но когда я пытаюсь получить доступ к этой информации во внешнем интерфейсе, он просто не получает ее: Пытается получить информацию из бэкэнда

Вот код, который пытается получить доступ к информации:

detectFaces(userName: string, fileName: string){
        return this.http.post<Array<Face>>(`${environment.apiUri}api/values/detectFaces/${userName}/${fileName}`, {})
        .pipe(
            map(
                ret => {
                    console.log(ret);
                    return ret;
                }
            ), catchError(this.handleError));
    }

И затем я пытаюсь добавить ее в файл HTML, но отображается «ret». здесь

detectFacesFromPic(fileName: string){
        this.imagesService.detectFaces(this.user.name, fileName)
        .subscribe(
            faces => {
                console.log("Faces in " + fileName);
                console.log(faces);
            });
    }

РЕДАКТИРОВАТЬ: я проверил вкладку Сеть в проводнике, он получает тот же ответ

Я уверен, что там мне чего-то не хватает, но я не могу понять, что это такое.

...