Membuat responseXML (AJAX) Bekerja Di IE


Sudah beberapa hari ini saya mencari tahu kenapa fungsi AJAX yang telah saya buat untuk meload data secara asinkron tidak dapat dijalankan pada browser Internet Explorer. Selalu saja ada error pada IE ketika meload data melalui AJAX dengan alasan “Object Expected”

Saya menggunakan responseXML untuk menangkap hasil pemprosesan request dari server sehingga data yang saya dapat akan  berupa XML, saya tidak menggunkan responseText karena fungsi tersebut akan mengeluarkan data dalam bentuk teks biasa. Jika saya menggunakan responseXML, maka IE tidak akan dapat mengambil data hasil proses di server, sedangkan jika saya menggunakan responseText semua browser termasuk IE dapat mengambil datanya.

Setelah saya seach sana-sini di internet, ternyata hal ini dikarenakan oleh bug pada IE dan Microsoft sendiri sudah mengakuinya, berikut adalah link statement official mengenai bug ini http://support.microsoft.com/kb/234460

Akhirnya setelah berhari-hari saya browsing untuk mendapatkan solusinya, saya mendapatkan solusi di bawah ini dari suatu blog

if(window.ActiveXObject){ // If IE Windows
var XMLdoc = new ActiveXObject(“Microsoft.XMLDOM”);
XMLdoc.loadXML(http_request.responseText);
} else {
var XMLdoc = http_request.responseXML;
}

Setelah saya coba, ternyata solusi diatas telah berhasil mengatasi masalah responseXML pada IE. Ternyata hanya memerlukan beberapa baris kodingan saja untuk membetulkan masalah ini, tapi saya lihat banyak yang bingung seperti saya di internet, oleh karena itu saya posting di sini dan semoga dapat membantu para programmer AJAX Indonesia.