2017-02-16 4 views
0

Я пытаюсь загрузить содержимое div с другой страницы (эта страница находится в другом проекте, который работает в tomcat вместе) с javascript ajax.Загрузка содержимого Div с другой страницы

var xhr = new XMLHttpRequest(); 
xhr.open('GET', 'http://localhost:8080/prob-services/clogin#login_page'); 
xhr.onload = function() { 
alert(xhr.status); 
console.log(xhr); 
    if (xhr.status === 200) { 
     var modal = document.getElementById("modal_dialog"); 
     modal.innerHTML = xhr.responseText; 
    } 
}; 
xhr.send(); 

Проблема заключается в том, когда я вхожу xhr я вижу, что responseURL есть до #, поэтому Ajax берет только http://localhost:8080/prob-services/clogin вместо http://localhost:8080/prob-services/clogin#login_page. Вот почему он загружает целую страницу. Есть ли способ получить только содержимое div без JQuery?

+1

Нет, вы должны загрузить всю страницу, а затем фильтровать разыскиваемый DIV в обработчик ответа. Или вы можете настроить сервер для отправки только этой маленькой части на основе параметра в URL-адресе, но это займет больше времени для кода и выходит за рамки вопроса. –

+1

Хэш-знак '#' - это идентификатор фрагмента, который обрабатывается клиентом. Вам нужно будет отфильтровать содержимое на стороне клиента или переключиться на переменную запроса, например 'http: // localhost: 8080/prob-services/clogin? Page = login_page' –

+0

Как ее фильтровать? –

ответ

0

решения для фильтрации всей страницы:

Создания фиктивного скрытого DOM элемент, как

<div style='display: none' id="loadedHTML"></div> 

затем поместить HTML всей страницы, который вы получили от сервера в него:

document.getElementById('loadedHTML').innerHTML = xhr.responseText; 

Теперь вы можете искать html внутри этого компонента. Скажем, часть, которую вы хотите находится в DIV под названием «MyDiv» внутри страницы:

var modal = document.getElementById("modal_dialog"); 
modal.innerHTML = document.getElementById('MyDiv').innerHTML; 

упал спросить больше, если это не достаточно ясно.

0

Используйте эту JQuery load() функцией

$('#modal_dialog').css('opacity','1').load('http://localhost:8080/prob-services/clogin',function() { 
    alert(): 
}); 
Смежные вопросы