HTML-страница как ответ AJAX? - PullRequest
       2

HTML-страница как ответ AJAX?

3 голосов
/ 20 августа 2011

Могу ли я отправить всю страницу HTML с ответом AJAX? Если так, то как отобразить эту HTML-страницу и каковы ее плюсы и минусы. Причина, по которой я задаю этот вопрос, состоит в том, что я обнаружил, что если мы используем response.sendRedirect("index.html") в качестве ответа на запрос AJAX в сервлете, мы получаем indx.html в виде XML-ответа AJAX.

Ответы [ 3 ]

3 голосов
/ 20 августа 2011

Ваш вопрос не имеет особого смысла, и я не могу точно сказать, что вы спрашиваете - ответ на запрос ajax будет таким, каким сервер отправляет обратно. Это может быть простой текст, XML, HTML, фрагмент документа HTML / XML и т. Д. Что вы можете сделать, зависит от вашего сценария. Если вы используете библиотеку, такую ​​как jQuery, то, что происходит на стороне клиента, и то, что вы можете сделать с ответом, также может зависеть от того, как библиотека интерпретирует ответ (это скрипт? Это HTML / XML или JSON?).

если мы используем response.sendRedirect ("index.html") в качестве ответа на запрос ajax в сервлете, мы получим indx.html в качестве xj ответа ajax. Может кто-нибудь объяснить это

Ajax-запрос будет вести себя как «обычный» HTTP-запрос. Поэтому, когда вы отправляете переадресацию с вашего сервера (HTTPServletResponse#sendRedirect), браузер выполняет перенаправление точно так же, как и для любого другого запроса. Если ваш ajax-запрос был к ресурсу, который требует HTTP BASIC-аутентификации, вы увидите приглашение войти в систему, как если бы вы посетили URL-адрес непосредственно в новом окне браузера.

1 голос
/ 20 августа 2011

Если я получу ваш вопрос, вы просто захотите узнать, сможете ли вы вернуть весь HTML с помощью AJAX, и знать все за и против.

Короткий ответ на ваш вопрос: да, вы можете вернуть всю HTML-страницу с вашим ответом AJAX, поскольку AJAX - это просто http-запрос к серверу.

Зачем вам нужен весь HTML? Это сбивает с толку меня, и это та часть, которая мне не ясна. Если вы хотите отобразить весь HTML-код (включая теги, такие как html, body и т. Д.), Вы можете также открыть его как новую страницу вместо вызова через Ajax.

Если вы говорите, что вы хотите получить только фрагменты HTML, чтобы заполнить заполнитель на вашей странице через AJAX, то это приемлемая практика. jQuery даже предоставляет функцию load () (http://api.jquery.com/load/), чтобы упростить эту задачу (см. раздел Загрузка фрагментов страницы).

Используя этот метод, вы можете заполнить местозаполнитель, используя фрагменты HTML, которые определяются логикой вашего сервера (т. Е. В случае неудачного или успешного входа в систему), включая перенаправление через сервер в вашем вопросе.

1 голос
/ 20 августа 2011

Если вы хотите отправить HTML в качестве ответа, поскольку вы хотите обновить div, таблицы или другие элементы, но при этом хотите использовать те же файлы CSS или JavaScript, то это может иметь смысл.

Что вы можете сделать, это просто отправить его в виде обычного текста обратно в функцию javascript, затем он может взять это и поместить его во внутренний HTML-элемент, который вы хотите заменить, но не делайте этого, если вы хотите заменить всю страницу, тогда делать то, что вы хотите, бессмысленно.

Когда вы делаете запрос http для вашего вызова ajax, у него есть собственный поток ответов, и поэтому, когда вы перенаправляете, вы просто сообщаете браузеру, что этот запрос http должен перейти к index.html, как @ no.good.at .coding упоминается.

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