Аргумент типа «Объект» нельзя назначить параметру типа «строка» - Ioni c Angular - PullRequest
0 голосов
/ 27 апреля 2020

Пытается разобрать с JSON, но я получаю эту ошибку: Аргумент типа 'Объект' не может быть назначен параметру типа 'строка'.

import { Component, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';

@Component({
  selector: 'app-uploader',
  templateUrl: './uploader.page.html',
  styleUrls: ['./uploader.page.scss'],
})
export class UploaderPage implements OnInit {

  imageURL: string
  constructor(public http: HttpClient) { }

  ngOnInit() {
  }

  fileChanged(event) {
    const files = event.target.files
    const data = new FormData()
    data.append('file', files[0])
    data.append('UPLOADCARE_STORE', '1')
    data.append('UPLOADCARE_PUB_KEY', '12d3f0b0b65cb448aa6b')

    this.http.post('https://upload.uploadcare.com/base/', data).subscribe(event => {
      console.log(event)
      this.imageURL = JSON.parse(event).file
    })
  }


}

В строке this.imageURL = JSON.parse(event).file ниже ( событие) я получаю эту ошибку. В чем может быть причина и как ее исправить.

The HTML:

<ion-header>
  <ion-toolbar>
    <ion-title>Upload Image</ion-title>
  </ion-toolbar>
</ion-header>

<ion-content padding>
  <div class="camera"> </div>
  <input type="file" (change)="fileChanged($event)"/>

  <img *ngIf="imageURL" src="https://ucarecdn.com/{{ imageURL}}/"/>
</ion-content>

1 Ответ

1 голос
/ 27 апреля 2020

Вы рядом. Появляется ответ от запроса POST уже в формате JSON. Вам не нужно JSON.parse() здесь. Попробуйте выполнить следующее:

this.http.post('https://upload.uploadcare.com/base/', data).subscribe(
  event => {
    this.imageURL = event.file;
  },
  error => { // handle error }
);

Рекомендуется также выполнить фактический HTTP-запрос в службе и обработать ошибку в подписке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...