Я пытаюсь отправить файл в 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;
}
Но он дает тот же ответ, если я отправляю запрос через почтальона без параметра "ставка". Я проверил формат переменных и другие. Но это все равно не работает. Что пошло не так.
Я сделал. Я использовал это 'application / x-www-form-urlencoded' от разочарования .. :). Понятия не имею, что происходит .. :(
какую ошибку вы получаете?
Я не знаю, как вы обрабатываете этот запрос на задней стороне, но этот код выглядит нормально, за исключением заголовка типа содержимого, и работал ли он с почтальоном?
С бэкэндом проблем нет. В каком бы формате я ни отправлял параметры из внешнего интерфейса, он попадает в бэкэнд и дает ответ, который я получу, если я не заполнил поле формы (ставка) в почтальоне. :(





Вам необходимо изменить параметры загрузки передачи файлов:
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'}
};
Пробовал с этим раньше. Не сработало. Думаю, проблема в плагине.
Удалять шапку
Content-Typeпробовали? потому что вы отправляете данные многостраничной формы, поэтому заголовок CDD 333 не должен быть CDD 333