Crossdomain AJAX
2010.10.29
Előfordul hogy AJAX-al szeretnénk meghívni egy másik domainen található URL-t. Mivel croos-domain AJAX nem lehetséges jelenleg, ezért egy workaround-ot kell alkalmaznunk. A dolog lényege hogy egy proxy fájlt hívunk meg a saját domainen belül es onnan hívjuk meg a távoli domainen található URL-t.
Egy kis minta, amiben az egyszerűség kedvéért jQuery AJAX-ot fogunk használni:
test.html
<!-- illesszuk be a jquery library-t -->
<a href="javascript:void(0)" onclick="$('#result').load('path/to/ajax_proxy.php?params=someparam');">Click me</a>
<div id="result"></div>
ajaxproxy.php
$url = "http://test.com/ajax_service.php"; $options = array( CURLOPT_URL => $url,#url megadasa CURLOPT_RETURNTRANSFER => 1,#nem akarunk kozvetlen output-ot CURLOPT_CONNECTTIMEOUT => 2 ,# 2 masodperc-es varakozas utan megszakitjuk a kerest CURLOPT_MAXREDIRS => 0,#maximum 0 atiranyitasig kovesse az atiranyitasokat CURLOPT_REFERER => "http://www.domain.com" #beallitjuk a referert ); $ch = curl_init(); curl_setopt_array($ch, $options); #megcsinaljuk a http kerest $result = curl_exec($ch); #lezarjuk a session-t hogy felszabaditsuk a rendszer-eroforrasokat. curl_close($ch); echo $result;A fenti kód csak a dolog logikáját hivatott bemutatni, nem egy működő példa, de azért remélem segít a technika megértésében.

