Передача файлов Ionic 2 с дополнительными данными

Я пытаюсь отправить файл в api, используя передачу файлов ionic 2 вместе с дополнительными параметрами. Это данные формы. Вот функция, в которой я отправляю данные в конец API:

 uploadFileRemark(businessId,theFile,content,val){
    const fileTransfer: FileTransferObject = this.transfer.create();
    console.info(theFile);
    var uploadOptions = {
      fileKey: "img_url",
      fileName: "img.png",
      params : {'bid':businessId,"imgurl":theFile,"content":content},      
      headers: {'Authorization':'Bearer ' + val, 'Content-Type': 'application/x-www-form-urlencoded'}
    };

    //console.info(this.api.url+'/api/business/postRemark');
    this.createLoadingSpinner();
    this.presentLoadingSpinner();
    let ft = fileTransfer.upload(theFile,this.api.url+'/api/business/postRemark', uploadOptions)
    .then((data) => {
      this.dismissLoadingSpinner();      
      console.info(data);
      alert("BID"+businessId+" "+JSON.stringify(data));
    }, (err) => { 
      this.dismissLoadingSpinner();
      console.info('OOPS!!! UNSUCCESSFUL');
      alert("BID"+businessId+" "+JSON.stringify(err));

    })
    return ft;
  }

Но он дает тот же ответ, если я отправляю запрос через почтальона без параметра "ставка". Я проверил формат переменных и другие. Но это все равно не работает. Что пошло не так.

Удалять шапку Content-Type пробовали? потому что вы отправляете данные многостраничной формы, поэтому заголовок CDD 333 не должен быть CDD 333

Javascript Hupp Technologies 10.03.2018 08:04

Я сделал. Я использовал это 'application / x-www-form-urlencoded' от разочарования .. :). Понятия не имею, что происходит .. :(

Soumya Rauth 10.03.2018 08:06

какую ошибку вы получаете?

AddWeb Solution Pvt Ltd 10.03.2018 08:17

Я не знаю, как вы обрабатываете этот запрос на задней стороне, но этот код выглядит нормально, за исключением заголовка типа содержимого, и работал ли он с почтальоном?

Javascript Hupp Technologies 10.03.2018 08:18

С бэкэндом проблем нет. В каком бы формате я ни отправлял параметры из внешнего интерфейса, он попадает в бэкэнд и дает ответ, который я получу, если я не заполнил поле формы (ставка) в почтальоне. :(

Soumya Rauth 10.03.2018 08:24
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
5
1 185
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам необходимо изменить параметры загрузки передачи файлов:

var uploadOptions = {
      fileKey: "file", // change fileKey
      chunkedMode: false, // add chunkedMode
      mimeType: "multipart/form-data", // add mimeType
      fileName: "img.png",
      params : {'bid':businessId,"imgurl":theFile,"content":content},      
      headers: {'Authorization':'Bearer ' + val, 'Content-Type': 'application/x-www-form-urlencoded'}
    };

Пробовал с этим раньше. Не сработало. Думаю, проблема в плагине.

Soumya Rauth 10.03.2018 09:23

Другие вопросы по теме