Мне было поручено создать загрузчик html-файлов, который должен создать запрос POST к нашей конечной точке ORDS.
Я нашел решение, которое хорошо работает с PDF-файлами, но когда я пытаюсь загрузить что-то еще, начинают появляться проблемы.
Это мой код:
$('#login-form').submit(function(e) {
e.preventDefault();
if (document.getElementById("fileinput").value != "") {
AJAXSendRequest();
} else {
document.getElementById("alertfile").style.display = "block";
}
return false;
});
function AJAXSendRequest() {
var formData = new FormData();
formData.append("file", document.getElementById("fileinput").files[0]);
var settings = {
"async": true,
data: formData,
processData: false,
contentType: document.getElementById("fileinput").files[0].type,
"crossDomain": true,
"url": "http://192.168.0.145:7001/ords/dads/media_module/media/",
"method": "POST",
"headers": {
"Content-Type": document.getElementById("fileinput").files[0].type,
"filename": document.getElementById("fileinput").files[0].name,
"inWHAT_DOC": tipo,
"inID_DOC_INSIDE": document.getElementById("id").value.toString()
}
}
$.ajax(settings).done(function(response) {
document.getElementById("successfile").style.display = "block";
// window.close();
});
}
Я получаю HTTP201 независимо от того, какой файл я загружаю, но это результат чтения загруженного XML-файла
-----------------------------19718198955447
Content-Disposition: form-data; name="file"; filename="AutoResponder.xml"
Content-Type: text/xml
<?xml version="1.0" encoding="utf-8"?>
<AutoResponder LastSave="2019-04-01T11:26:51.2600418+02:00" FiddlerVersion="5.0.20182.28034">
<State Enabled="false" Fallthrough="false" UseLatency="false" />
</AutoResponder>
-----------------------------19718198955447--
FormData каким-то образом обернут в эту странную строку, которая также отображается в загруженном файле (но не в pdf) (число изменяется с каждым запросом), и эти два заголовка всегда добавляются в начало файла.
Content-Disposition: form-data; name="file"; filename="AutoResponder.xml"
Content-Type: text/xml
Есть что-то, что я делаю не так?
Заранее спасибо
РЕДАКТИРОВАТЬ: запросы выполняются с помощью curl без проблем.
curl -X POST http://192.168.0.145:7001/ords/dads/media_module/media/ -H 'Content-Type: image/jpeg' -H 'Host: 192.168.0.145:7001' -H 'filename: testimgcurl.jpg' -H 'inID_DOC_INSIDE: 1240187' -H 'inWHAT_DOC: C Contratti Appalto' --data-binary @ch4.jpg