Come posso ottenere l'URL dell'URL esterno utilizzando jquery?get html di url esterno in jquery
risposta
La risposta breve è impossibile, perché le richieste AJAX sono limitate allo stesso dominio (secondario) e alla porta dallo Same Origin Policy.
Le stesse restrizioni si applicano agli elementi iframe
: non è possibile creare un iframe
che punta alla pagina esterna e prelevare il relativo codice HTML da lì.
Il modo usuale è utilizzare uno script sul lato server (scritto ad es. In PHP) che funge da proxy: recupera il contenuto del sito esterno e lo restituisce a JavaScript. Dovrà essere eseguito sullo stesso dominio della pagina.
Ovviamente, utilizzando questa soluzione, i riferimenti relativi a URL, immagini, fogli di stile e simili (ad esempio ../images/image.gif
) non funzioneranno più, poiché sono fuori contesto nella pagina. Se questo è un problema nella tua situazione è impossibile da dire. Una soluzione alternativa potrebbe essere l'utilizzo di <base>
tag.
Sulla sua forma più semplice - Non è possibile.
Sei legato con same origin policy.
È necessario jquery $.get
http://api.jquery.com/jQuery.get/
Esempio: Avvertire i risultati dal richiedere test.cgi con un payload aggiuntiva dei dati (HTML o XML, a seconda di ciò che è stato restituito).
$.get("test.cgi", { name: "John", time: "2pm" },
function(data){
alert("Data Loaded: " + data);
});
Modifica: questo funziona solo se la pagina è nello stesso dominio.
Non è possibile neanche: L'HTML dell'iframe non sarà accessibile al genitore JavaScript a causa della stessa politica di origine –
quindi lì non è affatto una soluzione :) – Stefanvds
È possibile utilizzare $ .ajax o $ .get per effettuare una chiamata a un URL nel proprio dominio e quindi utilizzare qualsiasi lingua lato server utilizzata per recuperare l'HTML e quindi restituirlo.
Si tratta di due richieste HTTP invece di una, ma si aggirerà il problema.
È inoltre possibile memorizzare nella cache l'HTML dei siti esterni nel codice backend in modo che una richiesta proveniente da Javascript non comporti sempre due richieste HTTP, ovviamente dipende dalla frequenza con cui l'HTML che si desidera catturare.
Una leggera svolta su quanto sopra sarebbe avere un'attività in background in esecuzione sul server che recupera l'HTMl esterno ogni X secondi e lo salva localmente. Le richieste al tuo dominio dal tuo JS prelevano l'ultima copia dal tuo server. Ciò significa che la tua richiesta JS non viene rallentata in attesa di un'altra richiesta HTTP esterna.
Tutti i browser comuni non consentono alle chiamate Javasript di accedere a qualsiasi pagina con un altro dominio (secondario) a causa della stessa politica di origine. L'unico modo per ovviare a questo è impostare una sorta di "proxy" sul proprio server (ad esempio uno script php) che viene eseguito nello stesso dominio, ottiene le informazioni desiderate da una terza fonte e le stampa.
È possibile aggiungere un PHP o qualsiasi altra lingua lato server al sito che potrebbe fungere da proxy per lo script per recuperare la pagina html.
Si potrebbe quindi chiamare il proxy server side con l'url utilizzando Ajax che restituirebbe l'HTMl di quella pagina.
- 1. Crea URL per sito esterno con parametri GET in Rails
- 2. Jquery carico parziale di HTML esterno
- 3. jquery ajax get responseText da http URL
- 4. get auto codice HTML con jQuery
- 5. cross domain jquery get
- 6. Usa .get (0) o .html() per restituire HTML con jQuery
- 7. jquery aggiungere file HTML esterno nella mia pagina
- 8. Get HTML in UITextView
- 9. Get URL corrente in Python
- 10. pitone tornado get richiesta URL
- 11. Get URL corrente (UIWebView)
- 12. Jsoup get URL reindirizzato
- 13. Get fb.me URL
- 14. Get URL senza querystring
- 15. Fetch Dati modulo Client esterno URL client
- 16. Get URL da anteprima immagine URL
- 17. jQuery - get neighborhood element
- 18. Spring, reindirizzamento a url esterno tramite POST
- 19. Creare un hyperlink URL esterno con JasperReports
- 20. jQuery Get Elements Color?
- 21. Generazione di un url esterno nei binari
- 22. Come chiamare l'URL esterno in jQuery?
- 23. Sitecore Get Rendered Html
- 24. documento jquery pronto in script esterno
- 25. Elemento JQuery get contenente elemento figlio con valore html specifico
- 26. .htaccess come reindirizzare sottodirectory di URL esterno
- 27. jQuery AJAX POST si trasforma in GET
- 28. get html con lua
- 29. Get assoluta url (base) in Sinatra
- 30. play framework: percorsi ingresso in un URL esterno
Possiamo farlo. Prova questo: http://crossorigin.me/ –
Ecco un blog sullo stesso: https://blog.codepen.io/2015/07/10/crossorigin-me/ –
@KushalJayswal che è esattamente il tipo di "server" script secondario che funge da proxy "di cui ho parlato. Viene fornito con una moltitudine di problemi, uno dei quali è illustrato dal fatto che il sito è attualmente offline, probabilmente a causa di un carico pesante. Per qualsiasi tipo di utilizzo professionale, tale servizio è molto lontano da "noi possiamo farlo" –