Monday, September 8, 2014

Cross Domain JSONP Request

Pada suatu ketika saya butuh melakukan Cross Domain JSONP Request. Tapi ternyata hal ini tidak bisa dilakukan dengan XMLHttpRequest seperti biasanya karenaXMLHttpRequest tidak bisa digunakan untuk request Cross Domain. Meskipun jQuery sejak versi 1.5 sudah mendukung request AJAX Cross Domain pada fungsi jQuery.ajax() dan turunannya, tapi pada kesempatan ini saya berusaha untuk tidak menggunakan jQuery dengan alasan ukurannya yang terlalu besar (85kB), padahal saya hanya butuh fungsi AJAX-nya saja.

Usaha membedah jQuery pun dilakukan untuk mengetahui script yang digunakan untuk melakukan Cross Domain Request yang seharusnya tidak bisa dilakukan.

Hasil pembedahan ditemukan bahwa ternyata jQuery memang tidak melakukan AJAX Request, tapi diakali dengan cara :


  1. Membuat elemen script.
  2. Mengatur property src dari element script dengan url yang akan direquest. Dengan cara inilah Cross Domain Request bisa dilakukan. Hal yang sama seperti kita menggunakan third party script.
  3. Memproses response/script yang diperoleh.
  4. Hapus lagi elemen script.