Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

jQuery, feed RSS esterni tramite proxy

Come effettuare richieste cross domain sfruttando un proxy
Come effettuare richieste cross domain sfruttando un proxy
Link copiato negli appunti

Feed RSS esterni tramite proxy

Abbiamo visto, in un articolo precedente che per ottenere dati dallo stesso dominio su cui facciamo girare il nostro script non ci sono problemi, mentre per inoltrare richieste all'esterno, come nel caso più tipico dei feed RSS, bisogna trovare degli escamotage.

La tecnica più comune per utilizzare documenti XML esterni è quella di creare un proxy sul nostro dominio, ovvero uno script lato server che faccia la richiesta e presenti il risultato al client. Il risultato è che il nostro script in questo caso accede ad una risorsa che si trova sullo stesso dominio e quindi non ha alcun problema.

Proxy ASP.NET

Ecco un esempio di proxy fatto in ASP.NET - C#, che chiamiamo proxy.aspx

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Net" %>
<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        string url = Request["url"];
        string result = null;
        try
        {
            WebClient client = new WebClient();
            result = client.DownloadString(url);
            Response.Write(result);
        }
        catch (Exception ex) { } // gestire l'errore
    }
</script>

Naturalmente è molto semplice, ad esempio manca la propagazione dell'header originale, ma già può essere utile per piccoli esempi. Per ottenere il documento esterno è sufficiente richiamare la pagina e passare la URL come variabile nella QueryString.

http://mioserver.com/proxy.aspx?url=altroserver.com/doc.xml

Proxy PHP

Naturalmente, tramite proxy possiamo servire qualunque tipo di documento XML e non solo feed. Ecco un esempio semplice di proxy in PHP (chiamiamolo proxy.php), che sfrutta le librerie cURL:

<?php
$url = $_GET['url'];
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
$data = curl_exec($ch);
curl_close($ch);
echo $data;
?>

Per ottenere il contenuto desiderato richiamiamo lo script e gli passiamo la URL come variabile nella QueryString.

http://mioserver.com/proxy.php?url=altroserver.com/doc.xml

Anche qui ci siamo limitati ad un semplice passaggio di dati, un esempio di proxy già pronto da utilizzare in PHP è php-simple-proxy, che restituisce il contenuto della pagina richiesta in formato JSON.

Ti consigliamo anche