Задать вопрос
@Ilyaploskov

JS — как сделать подгрузку блока с другой страницы?

Нужно загрузить со страницы https://site.ru/ajax-map.html блок id="map-for-ajax" , в блок на текущей странице id="load-map" . Что неправильно делаю?

<div id="load-map"></div>
<script>
(function(){
  var http = new XMLHttpRequest();  
  http.open('GET', 'https://site.ru/ajax-map.html');
  http.onreadystatechange = function () {
    if (this.readyState == 4 && this.status == 200) {
      var doc = new DOMParser().parseFromString(this.responseText, "text/html");  
      doc.getElementById('map-for-ajax')[0].innerHTML = document.getElementById('load-map').innerHTML;
    }
  }
  http.send(null);
})()
</script>
  • Вопрос задан
  • 331 просмотр
Подписаться 2 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 1
Jeer
@Jeer
уверенный пользователь
Привет, задача кросс-доменного запроса, насколько я разбираюсь в телекинезе.
Если так, то есть несколько вариантов, (вначале гугл, разумеется):
Первый вариант, если у вас имеется доступ к обоим сайтам, необходимо в том сайте, куда идёт запрос настроить CORS политики.
Второй вариант кастыльный, к примеру, загрузить блок в Iframe, но это вам вряд ли понадобится.
Третий вариант, делать прокси: на своём сервере пишете метод, в котором вызываете нужную страницу, парсите ответ, на выход идёт необходимый кусок html, который уже можно получить аяксом и вставить в нужное место
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы