Crossdomain AJAX
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
<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.