Ketika JavaScript pertama kali dikembangkan, tidak terbayangkan bahwa ia akan digunakan secara luas, dan karenanya banyak asumsi dibuat selama pengembangannya, yang telah menjadi masalah saat ini.
Ketika Microsoft mendesain XMLHttpRequest
di Internet Explorer Browser mereka, itu dirancang dengan batasan besar.
Tidak XMLHttpRequest
memungkinkan Anda untuk secara langsung membuat permintaan ke server lain. Bahkan dua server berjalan pada mesin yang sama, tetapi port yang berbeda memiliki batasan ini.
Yang perlu Anda lakukan, adalah memiliki proxy cgi pada server web apache Anda (port 80), dan gunakan OpenLayers.ProxyHost untuk mengarahkannya.
Situs OpenLayers memiliki Jawaban FAQ untuk masalah ini :
Mengapa saya perlu ProxyHost?
Karena pembatasan keamanan dalam Javascript, tidak mungkin untuk mengambil informasi dari domain jauh melalui XMLHttpRequest.
Kelas-kelas seperti WFS dan GeoRSS menggunakan XMLHTTPRequest untuk mendapatkan data mereka. Jika mereka menanyakan server jarak jauh (selain mesin yang meng-host halaman Anda), Anda harus menginstal skrip proxy di suatu tempat yang dapat diakses web di mesin itu. Lihat di bawah ini untuk cara mengatur ProxyHost Anda sendiri.
Jika variabel OpenLayers.ProxyHost tidak diatur ke host proxy yang valid, permintaan dikirim langsung ke server jarak jauh. Dalam kebanyakan kasus, hasilnya akan menjadi pengecualian keamanan, meskipun pengecualian ini sering terjadi secara diam-diam. Bagaimana cara saya mengatur ProxyHost?
Contoh skrip host proxy tersedia di sini:
trunk / openlayers / example / proxy.cgi
Untuk konfigurasi standar Apache, Anda akan menempatkan proxy.cgi ke direktori / usr / lib / cgi-bin / Anda.
Setelah skrip host proxy telah diinstal, Anda harus mengedit variabel OpenLayers.ProxyHost untuk mencocokkan URL itu.
Dengan konfigurasi Apache standar di atas:
OpenLayers.ProxyHost = "/cgi-bin/proxy.cgi?url=";
Jika Anda telah melakukan sesuatu seperti ini, Anda harus dapat mengunjungi:
http://YourDomain.example.com/cgi-bin/proxy.cgi
Konten yang dihasilkan di halaman tersebut haruslah situs web openlayers.org.
Jika Anda mendapatkan kesalahan 404 sebagai gantinya, skrip proksi tidak di lokasi yang benar, atau server web Anda tidak dikonfigurasi dengan benar.
Setelah Anda menyalin file proxy ke server Anda, jangan lupa mengedit allowedHosts
array.
Meskipun jawaban yang ada sudah cukup lama, saya merasa perlu ada jawaban yang lengkap, karena pertanyaan ini telah menjadi pertanyaan kanonik, dan banyak lainnya ditutup sebagai duplikatnya. Ini adalah usaha saya untuk menjawab pertanyaan ini, berdasarkan jawaban lain yang saya tulis di situs ini.