Rabu, 01 Mei 2013

Membuat Request Ajax dari local filesystem (file:///) dengan Google Chrome



Untuk alasan keamanan, semua request Ajax haruslah mengakses file yang memiliki origin yang sama, sehingga request Ajax dengan local filesystem secara default tidak dapat dilakukan meskipun file target hanya file xml atau html biasa. Karena itulah file yang menggunakan Ajax tersebut haruslah diletakkan pada web server. Mozilla dan Safari tidak konsisten menerapkan hal ini karena pada beberapa kondisi browser masih mengijinkan request Ajax yang berasal dari file local dan menghasilkan output yang tidak terduga. File local adalah file HTML yang dibuka dengan menggunakan double click atau dengan context menu Open sehingga alamat yang muncul di address bar adalah mirip seperti ini: "file:///C://my/path/index.html"




Google Chrome tidak mengijinkan sama sekali request Ajax yang berasal dari file local, dan akan memunculkan error seperti ini bila dilihat di Console:




Namun kita bisa "memaksa" Chrome untuk memperbolehkan request Ajax dari file local dengan "memulai" Chrome disertai opsi "--allow-file-access-from-files". Ikuti cara berikut:

1. Buka CMD (Command Prompt) dan arahkan ke folder dimana Google Chrome berada, di Windows 7 biasanya ada di C:\Users\ADMINUSER\AppData\Local\Google\Chrome\Application (*bagian ADMINUSER bisa berbeda tergantung User di komputermu)

2. Setelah berada di folder Application, ketik perintah berikut:
chrome --allow-file-access-from-files




3. Google Chrome akan terbuka. Jangan ditutup browsermu, terus cari file HTMLmu yang berisi request Ajax dengan Windows Explorer, lalu klik Open With -> Google Chrome, atau jika Chrome sudah menjadi browser default maka tinggal di double click icon file HTML tersebut.

4. Sekarang Chrome bisa menjalankan file HTML yang berisi request Ajaxmu dengan baik :)

PERHATIAN: "memaksa" Chrome seperti ini tidak baik untuk kedepannya, cara terbaik adalah meletakkan file HTML mu di webserver. Gunakan Node.js untuk membuat webserver sederhana, dengan Node.js kamu tidak perlu menginstal apapun dan servernya bisa portable dan bisa langsung dijalankan dari removable media seperti flashdisk atau CD. Jika ingin menginstal webserver Apache + PHP dan MySQL bisa menggunakan XAMPP installer.

Tidak ada komentar:

Posting Komentar