ajax cross domain request screenshot

Cross-Domain Requests (XDR) mit JavaScript / jQuery

Folgende Problematik: Möchte man bestimmte Informationen einer fremden Webseite mit JavaScript auslesen, dann ist man gezwungen Workarrounds anzuwenden. Eine Möglichkeit ist, ein kleines PHP-Skript als Proxy einzusetzen, um an die gewünschten Daten zu kommen.

Beispielhafter Aufbau des Proxy-Skripts:

//proxy.php
$aOptions = array('http' =>
            array('method'  => 'POST',
                  'header'  => 'Content-type: application/x-www-form-urlencoded',
                  'content' => http_build_query($_POST)));
                                 
$rContext  = stream_context_create($aOptions);

echo file_get_contents('http://sklueh.de', false, $rContext);

HTML-Code für die Formular-Elemente:

<input id="search_string" type="text" value="php" />
<button onclick="ajaxRequest();">Suchen auf sklueh.de</button>
<div id="content"></div>

JavaScript-Code zum Versenden der POST-Daten an das Proxy-Skript:

function ajaxRequest()
{
    $.ajax({
    type: "POST",
    url: "proxy.php",
     
    //POST-Daten, die weitergeleitet werden sollen
    data: { s: $('#search_string').val() }
    }).done(function( result )
    {
        //Extrahieren einzelner Elemente
        $('#content').append($(result).find('.content>a').html());
    });
}

Und so sieht es aus:
ajax cross domain request screenshot

Ein Gedanke zu „Cross-Domain Requests (XDR) mit JavaScript / jQuery“

  1. Auf die Idee muss mann erst mal kommen 🙂 habe jetzt viel probiert, JASONP und und und. Aber das ist für mich die beste Lösung, da ich alles wie gewohnt coden kann. SUPER!!!

Schreibe einen Kommentar