2013-02-21 16 views
11

È possibile caricare una singola pagina da un sito Web esterno?jQuery carica pagina esterna del sito

Sto cercando di mostrare una singola pagina, ma non riesco a farlo funzionare

$("#response").load("http://domain.com", function(response, status, xhr) { 
    if (status == "error") { 
     var msg = "Sorry but there was an error: "; 
     alert(msg + xhr.status + " " + xhr.statusText); 
    } 
}); 

aiuto sarebbe molto apprezzato

+1

Sì, è possibile, ma è necessario 1 riga di PHP :) –

+0

Date un'occhiata qui - http://en.wikipedia.org/ wiki/Cross-origin_resource_sharing e qui http://msdn.microsoft.com/en-us/library/windows/apps/hh767443.aspx – Bakudan

+0

Se hai bisogno solo di feed RSS e non ti dispiacerebbe affidarti a Google potresti usare [ jquery-feed] (https://github.com/camagu/jquery-feeds/). – guaka

risposta

19

Si sta eseguendo in un criteri interdominio problema causa AJAX (per motivi di sicurezza), non vi permetterà di cattura il contenuto da una pagina che non si trova nello stesso dominio.

per sbarazzarsi di esso e compiere il proprio compito:
è necessario un file PHP è possibile chiamare grabber.php con appena questa linea di PHP:

<?php echo file_get_contents($_GET['url']); ?> 

che dentro il codice HTML (o qualsiasi altra cosa il file basta fare Mi piace :)

<!DOCTYPE html> 
<html> 
<head> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 
    <meta charset=utf-8 /> 
    <title>test</title> 
</head> 
<body> 

    <div id="response"></div> 

</body> 

<script> 
$(function(){ 
    var contentURI= 'http://domain.com #element'; // URL TO GRAB + # of any desired element // if needed :) 
    $('#response').load('grabber.php?url='+ contentURI); 
}); 
</script> 

</html> 

Perché funziona?

  • ora, AJAX sta inviando una semplice richiesta GET alla pagina grabber.php,
  • grabber.php riprende il contenuto desiderato
  • ora il contenuto è sulla vostra (server) di dominio!
  • e AJAX è felice di servire voi :)
+1

questo è fantastico. Un problema però. Ho notato che molti siti perdono il loro percorso assoluto una volta che lo tirano. Conosci qualche consiglio per estrarre la pagina e mantenerla intatta? – andehlu

+1

@andehlu Si potrebbe aggiungere il contenuto caricato in un iframe, questo dovrebbe mantenere i percorsi in ordine. –

+0

@WessamElMahdy depents se si vuole solo ammirare la pagina caricata o si vuole effettivamente fare qualcosa con gli elementi caricati .... –

0

stai cercando di caricare una pagina su un dominio diverso?

Se sì, allora sembra che hai una criteri dei domini sulla buona strada ...

Problemi correlati