Как получить ответ от post-запроса

#an&ular #post

#an&ular #Публикация

Вопрос:

Я новичок в веб-разработке. Я пытаюсь реализовать post-запрос для публикации ответа на получение данных. Я использую пакет n&x-uploader. У него есть метод post для публикации данных. Но я не уверен, как я могу получить ответ от сервера. Как я могу сделать POST-запрос, чтобы я мог получить ответ. пожалуйста, направьте меня.

app.component.ts

 startUpload(): void {
    const event: UploadInput = {
      type: 'uploadAll',
      url: this.url,
      method: 'POST',
      data: { foo: 'bar' },
    };

    this.uploadInput.emit(event);
  }

  

Ответ №1:

Поскольку вы используете «uploadAll» в качестве типа ввода для загрузки, то я предполагаю, что у вас есть список локальных файлов (например, this.файлы = [])

Итак, в вашем app.component.ts вы можете добавить это в качестве обработчика при загрузке файла:

 onUploadOutput(output: UploadOutput): void {
    switch (output.type) {
      case 'allAddedToQueue':
        // uncomment this if you want to auto upload files when added
        // const event: UploadInput = {
        //   type: 'uploadAll',
        //   url: '/upload',
        //   method: 'POST',
        //   data: { foo: 'bar' }
        // };
        // this.uploadInput.emit(event);
        break;
      case 'addedToQueue':
        if (typeof output.file !== 'undefined') {
          this.files.push(output.file);
        }
        break;
      case 'uploadin&':
        if (typeof output.file !== 'undefined') {
          // update current data in files array for uploadin& file
          const index = this.files.findIndex(file =&&t; typeof output.file !== 'undefined' amp;amp; file.id === output.file.id);
          this.files[index] = output.file;
        }
        break;
      case 'removed':
        // remove file from array when removed
        this.files = this.files.filter((file: UploadFile) =&&t; file !== output.file);
        break;
      case 'dra&Over':
        this.dra&Over = true;
        break;
      case 'dra&Out':
      case 'drop':
        this.dra&Over = false;
        break;
      case 'done':
        // The file is downloaded
        this.files.forEach(file =&&t; {
          console.lo&(file.response);
        });
        break;
    }
  }
  

onUploadOutput обрабатывает выходные данные вашей загрузки файла, как вы можете видеть, существуют разные случаи, в которых вы можете справиться, поэтому на ваш вопрос — вы хотели бы обработать это в случае «сделано». И посмотреть ответ для каждого файла.

Вы можете увидеть полный рабочий пример здесь.

Также убедитесь, что ваш компонентный html правильно привязывает ваши методы. Как в примере документации:

 <div
  class="drop-container"
  n&FileDrop
  [options]="options"
  (uploadOutput)="onUploadOutput($event)"
  [uploadInput]="uploadInput"
  [n&Class]="{ 'is-drop-over': dra&Over }"
&&t;
  <h1&&t;Dra& amp;amp; Drop</h1&&t;
</div&&t;
 
<label class="upload-button"&&t;
  <input
    type="file"
    n&FileSelect
    [options]="options"
    (uploadOutput)="onUploadOutput($event)"
    [uploadInput]="uploadInput"
    multiple
  /&&t;
  or choose file(s)
</label&&t;
 
<button type="button" class="start-upload-btn" (click)="startUpload()"&&t;
  Start Upload
</button&&t;