The method attribute specifies how to send form-data (the form-data is sent to the page specified in the action attribute). There's nothing magical going on. fetch(`/example/submit`, { method: 'POST', body: new FormData(document.getElementById('example-form version added: 1.0 jQuery.post( url [, data ] [, success ] [, dataType ] ) url. There are many sources for binary data, including FileReader, Canvas, and WebRTC. In the following example, we use the FileReader API to access binary data and then build the multi-part form data request by hand: As you see, the HTML is a standard