Как получить HTML из внешнего содержимого с помощью Jquery? - PullRequest
0 голосов
/ 28 декабря 2010

Я успешно выполнил задачу заставить внутреннюю веб-страницу отображаться в моем HTML, как показано ниже.

 <!doctype html>
 <html>
   <head>
  <script type="text/javascript" src="jquery-1.4.4.js"></script> 
   </head>
   <body> 
  <div id="target">
   click here to see teste1.html
  </div>
  <div id="result">

  </div>
  <script type="text/javascript">
   $('#target').click(function() {
    $.get('teste1.html', function(data) {
     $('#result').html(data);
     alert('Load was performed.');
    });
   });
  </script>
   </body>
 </html>

Основная цель - получить внешнюю веб-страницу, но это не работает:

 $.get('http://www.google.com/index.html', function(data) {
  $('#result').html(data);
  alert('Load was performed.');
 });

Мне нужно получить HTML-код с внешней веб-страницы, чтобы прочитать теги, а затем вывести на Json.

Некоторые подсказки о том, как этого добиться (загрузить внешние веб-страницы с помощью Jquery илия должен сделать это с PHP)?

Ответы [ 2 ]

8 голосов
/ 28 декабря 2010

Это не может быть легко сделано с Javascript из-за Одинаковой политики происхождения .

Если это просто отображение внешней страницы, вы можете загрузить ее в <iframe>.

В противном случае, если возможно, используйте серверный язык, такой как PHP, в качестве прокси.Получите данные, используя Ajax из прокси-скрипта.Позаботьтесь о том, чтобы не допустить неправильного использования (как и другие, неправильно использующие скрипт для произвольных запросов).

3 голосов
/ 28 декабря 2010

Если вы не сможете сделать это напрямую из JavaScript, вам придется написать серверный сценарий в качестве прокси-сервера, вот пример для вас:

<?php
$url = urldecode($_GET['url']);
$handle = fopen(url,'r');
while (!feof($handle))
{
   $str = fgets($handle, 4096);
   echo $str;
}
fclose($handle);
?>

Вы можете отправить запрос AJAX наЭтот сценарий из JavaScript вместе с URL-адресом сайта, который вы хотите получить, не забудьте кодировать URL-адрес перед отправкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...