I am trying to upload am xlsx file via Javascript to a C# API. Whenever I call the 'send' below, I get:
- A 'Bad Request' response if I leave 'Content-Type' in the header; or
- An 'Unsupported Media Type' response if I remove it.
I have looked over numerous articles about how to solve this but nothing has worked.
Javascript function
function uploadFile(file, i) {
var url = "API POST Route";
var xhr = new XMLHttpRequest();
xhr.open("post", url, true);
// Set appropriate headers
xhr.setRequestHeader("Content-Type", "multipart/form-data");
xhr.setRequestHeader("X-File-Name", file.name);
xhr.setRequestHeader("X-File-Size", file.size);
xhr.setRequestHeader("X-File-Type", file.type);
//edited with solution from https://stackoverflow.com/questions/6211145/upload-file-with-ajax-xmlhttprequest
var formData = new FormData();
formData.append("thefile", file);
xhr.send(formData);
}
UPDATE Edited original solution to include FormData() but still getting same errors