¿Cómo puedo obtener el HTML de la URL externa usando jquery?obtener html de url externo en jquery
Respuesta
La respuesta corta es que no puede, porque las solicitudes AJAX están limitadas al mismo (sub) dominio y puerto por el Same Origin Policy.
Las mismas restricciones se aplican a los elementos iframe
: No se puede crear un iframe
apuntando a la página externa, y tomar su HTML desde allí.
La forma habitual es utilizar un script del lado del servidor (escrito, por ejemplo, en PHP) que sirve como proxy: recupera el contenido del sitio externo y lo devuelve a JavaScript. Tendrá que ejecutarse en el mismo dominio que la página.
Obviamente, utilizando esta solución, las referencias relativas a URL, imágenes, hojas de estilo y cosas por el estilo (por ejemplo, ../images/image.gif
) ya no funcionarán, ya que están fuera de contexto en su página. Si eso es un problema en su situación es imposible de decir. Una solución para eso puede estar usando un <base>
tag.
En su forma más simple - No se puede.
Usted está obligado por same origin policy.
Usted necesita jQuery $.get
http://api.jquery.com/jQuery.get/
Ejemplo: Aviar a los resultados de solicitar test.cgi con una carga útil adicional de datos (HTML o XML, dependiendo de lo que fue devuelto).
$.get("test.cgi", { name: "John", time: "2pm" },
function(data){
alert("Data Loaded: " + data);
});
Editar: esto solo funciona si su página está en el mismo dominio.
No es posible: el código HTML del 'iframe' no será accesible para el JavaScript padre debido a la Política de mismo origen –
entonces hay no es una solución en absoluto :) – Stefanvds
Puede usar $ .ajax o $ .get para hacer una llamada a una URL en su propio dominio y luego usar el lenguaje del lado del servidor que está utilizando para recuperar el HTML y luego devolverlo.
Son dos solicitudes HTTP en lugar de una, pero solucionará su problema.
También puede almacenar en caché el HTML de sitios externos en su código backend para que una solicitud de Javascript no siempre dé como resultado dos solicitudes HTTP, por supuesto, todo depende de la frecuencia con la que cambiará el HTML que desea capturar.
Un ligero giro en lo anterior sería tener una tarea en segundo plano ejecutándose en su servidor que recupera el HTMl externo cada X segundos y lo guarda localmente. Las solicitudes a su dominio desde su JS solo recogen la última copia de su servidor. Eso significa que su solicitud JS no se ralentiza esperando otra solicitud HTTP externa.
Todos los navegadores comunes no permiten que las llamadas a Javasript accedan a páginas con otro (sub) dominio debido a la misma política de origen. La única forma de evitar esto es configurar algún tipo de "proxy" en su propio servidor (por ejemplo, un script php) que se ejecute bajo el mismo Dominio, obtenga la Información que desee de un tercer recurso y los imprima.
Puede agregar un PHP o cualquier otro idioma del lado del servidor a su sitio que podría actuar como un proxy para su script para buscar la página html.
A continuación, puede llamar a su proxy del lado del servidor con la url usando Ajax que le devolverá el HTMl de esa página.
- 1. Jquery carga parcial de HTML externo
- 2. jquery, dominio, obtener URL
- 3. jQuery anexar archivo HTML externo en mi página de
- 4. Cómo obtener la URL base de un sitio web externo
- 5. jquery - obtener la ruta url?
- 6. jQuery OBTENER html como objeto jQuery transitable
- 7. Cómo devolver el html externo de DOMDocument?
- 8. cargar el archivo html externo a div usando jquery
- 9. Obtener ID de URL con jQuery
- 10. jquery documento listo en script externo
- 11. jQuery no funciona en JavaScript externo
- 12. jQuery, obtener html de un elemento completo
- 13. ¿Cómo obtener una img url usando jQuery?
- 14. Obtener variables de matriz de URL en javascript/jquery
- 15. Obtener Html desde una URL en ASP.NET MVC
- 16. jQuery - Cómo obtener todos los estilos/css (definidos en documento interno/externo) con HTML de un elemento
- 17. jQuery: obtener la url en la función de éxito
- 18. obtener el código HTML con jQuery auto
- 19. jquery ajax form - cómo obtener la URL de redirección?
- 20. jQuery obtener todos los atributos HTML
- 21. obtener elementos html array con jquery
- 22. obtener URL, obtener Título por Javascript no jQuery
- 23. Cómo abrir un archivo externo desde HTML
- 24. Xampp - Redirigir url externo a localhost
- 25. Crear un hipervínculo externo de URL con JasperReports
- 26. ¿Cómo obtener html sin formato de cadena en jquery?
- 27. Cómo obtener código fuente html desde la URL externa
- 28. carga jQuery-Plantillas desde un archivo externo?
- 29. ¿Cómo obtener respuesta html desde una cadena url? (Esquema/Raqueta)
- 30. Obtener metaetiquetas de la url solo por jQuery
Podemos hacerlo. Pruebe esto: http://crossorigin.me/ –
Aquí hay un blog sobre lo mismo: https://blog.codepen.io/2015/07/10/crossorigin-me/ –
@KushalJayswal que es exactamente el tipo de "servidor" guión lateral que sirve como proxy "que mencioné. Viene con una multitud de problemas, uno de los cuales se ilustra por el hecho de que actualmente el sitio está fuera de línea, probablemente debido a una gran carga. Para cualquier tipo de uso profesional, ese servicio está muy lejos de "podemos hacerlo" –