ファイルを非同期にアップロードするために使用しているコードがいくつかあります-うまく機能します:
var form = document.getElementById('form-id');
var formData = new FormData(form);
var fileInput = document.getElementById('file');
var file = fileInput.files[0];
formData.append('our-file', file);
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener('loadstart', onloadstartHandler, false);
xhr.upload.addEventListener('progress', onprogressHandler, false);
xhr.upload.addEventListener('load', onloadHandler, false);
xhr.addEventListener('readystatechange', onreadystatechangeHandler, false);
xhr.open('POST', 'http://www.server1.com/upload.php', true);
xhr.send(formData);
問題は、代替ドメイン (例: www.server2.com/upload.php) に投稿したい場合、機能しないことです。スクリプトが存在するのと同じドメインに投稿した場合にのみ機能します。