編集: カスタム ヘッダーがある場合、クロスドメイン リクエストは機能しません。カスタム ヘッダーがある場合、OPTIONS リクエストが自動的に送信され、サーバーは 200 OK で応答する必要があります。その後、実際の POST が送信されます。カスタム ヘッダーで認証する必要があるため、OPTIONS リクエストを受け入れるようにサーバー側を変更する必要があります。あなたは運が悪いと思います。
以下は、カスタム ヘッダーがなく、クロスドメイン リクエストが機能する場合のコードです。次のような HTML を使用します。
<form >
<input type="file" name="file" id="fileToUpload" onchange="uploadFile()">
</form>
このコードを使用
function uploadFile() {
var fd = new FormData();
fd.append("fileToUpload", document.getElementById('fileToUpload').files[0]);
fd.append("directory","/testpost");
fd.append("basename","wobble-004.txt");
var oReq = new XMLHttpRequest();
oReq.open("POST", "https://api.lama.lldns.net/post/file", true);
oReq.onreadystatechange = alert(status);
oReq.send(fd);
}
詳細については、この Mozilla ブログ投稿を参照してください。