Я пытаюсь отправить файл в публичный API через AJAX. Здесь - это API, с которым я работаю, и мы можем предположить, что он работает правильно, как я сейчас объясню.
Вот моя HTML-форма и ввод:
<form id="innerFileSection" name="innerFileSection" >
<input id="fileUpload" type="file" name="fileUpload" accept=".wav,.mp3"/>
<label id="labelForFileUpload" for="fileUpload">Upload File</label>
</form>
И мой Javascript:
var item = document.forms["innerFileSection"]["fileUpload"].files[0];
var form = new FormData();
console.log(item);
form.append("file", item);
$.ajax("https://aimastering.com:443/api/library_audios", {
method: "POST",
processData: false,
contentType: false,
headers: {
Authorization: "Bearer " + key,
accept: "application/json",
"Content-Type": "multipart/form-data"
},
data: {
form
}
})
Здесь "ключ" - это переменная с моим ключом API носителя.
Я протестировал это в Postman (интерфейс API), и он успешно возвращается.Вот AJAX, автоматически сгенерированный почтальоном:
var form = new FormData();
form.append("file", "C:\\Users\\me\\Desktop\\sound.wav");
var settings = {
"async": true,
"crossDomain": true,
"url": "https://aimastering.com:443/api/library_audios",
"method": "POST",
"headers": {
"accept": "application/json",
"Content-Type": "multipart/form-data",
"cache-control": "no-cache",
"Postman-Token": "9d3609f6-f495-4978-b53e-3e392ca914aa"
},
"processData": false,
"contentType": false,
"mimeType": "multipart/form-data",
"data": form
}
$.ajax(settings).done(function (response) {
console.log(response);
});
Я предполагаю, что получаю ошибку 500, потому что файл, который я отправляю, не в правильном формате - но я не понимаю, где яотсюда можно успешно отформатировать файл.