Saya telah membaca banyak jawaban tentang preflight dan CORS, jadi tolong jangan memposting tautan yang merujuk pada apa yang harus saya baca. Banyak jawaban berasal dari perspektif server, tetapi saya adalah klien dalam kasus ini. Apakah saya mengatur header asal? Asumsi saya adalah bahwa ini adalah permintaan sederhana, apakah saya benar?
req.open("POST", url, true);
req.setRequestHeader( 'Content-Type', 'application/blahblah' );
req.setRequestHeader( 'Accept', 'application/blahblah' );
req.setRequestHeader("Authorization", "Basic " + btoa(user + ":" + pass));
req.send();
Namun masih belum berhasil, kesalahan saya:
Respons terhadap permintaan preflight tidak lolos pemeriksaan kontrol akses: Tidak ada 'Access-Control-Allow-Origin' header ada pada sumber daya yang diminta. Asal 'null' oleh karena itu tidak diizinkan akses. Respons memiliki kode status HTTP 500.
Jika menggunakan ini untuk permintaan API, menambahkan header Otorisasi pertama-tama akan membuat XMLHttpRequest mengirim permintaan OPTIONS, yang mungkin ditolak oleh beberapa API.
Untuk menyiasati hal ini, Anda juga dapat melakukan:
var invocation = new XMLHttpRequest();
invocation.open("GET", url, true, username, password);
invocation.withCredentials = true;
Yang akan menambahkan header Otorisasi dan juga menghindari permintaan preflight.