Какие форматы данных может передавать AJAX?

StackOverflow https://stackoverflow.com/questions/874417

  •  22-08-2019
  •  | 
  •  

Вопрос

Я новичок в AJAX, но в качестве обзора я хотел бы знать, какие форматы вы можете загружать и скачивать.Ограничено ли это JSON или XML, или вы даже можете отправлять двоичные типы, такие как MP3 или UTF-8 HTML.И, наконец, есть ли у вас полный контроль над данными, байт за байтом в чем-то вроде массива байтов, или это только отправленная/полученная строка.

Это было полезно?

Решение

Если мы говорим об ajax, мы говорим о javascript?А насчет XMLHTTPRequest?

XMLHttpRequest, который представляет собой только http-запрос, может передавать все.Но в JavaScript нет массива байтов.Только строки, числа и тому подобное.Все, что вы получаете от вызова ajax, представляет собой фрагмент текста (responseText).Это может быть преобразовано в XML (что дает вам ответ XML).Специальные кодировки должны больше относиться к HTTP-транспорту.

Бинарный материал зависит не от Ajax, а от JavaScript.Существуют некоторые странные кодировки строк для доставки байтовых данных внутри javascript (особенно для изображений), но это не общее решение.

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

Другие советы

Поскольку данные передаются через HTTP, вам необходимо убедиться, что вы используете какую-то кодировку.Одной из самых популярных является кодировка base64.Дополнительную информацию вы можете найти по адресу: http://www.webtoolkit.info/javascript-base64.html

Методика заключается в кодировании данных, которые вы хотите отправить, в формате Base64, а затем в кодировке Base64 на сервере (или клиенте) и использовании исходных данных по назначению.

Вы можете передавать любые типы данных: строки или байты.

Вы можете отправить все, что захотите, проблема может заключаться в том, как с этим справиться, когда вы это получите;)

Стандартный HTML, вероятно, является наиболее распространенным типом Ajax-контента: вы также можете выбрать кодировку символов, хотя всегда лучше придерживаться одного типа кодировки.

AJAX просто означает, что вы передаете данные асинхронно через HTTP с помощью вызова JavaScript.Итак, ваш скрипт выполняет «обычный» HTTP-запрос, используя объект XmlHttpRequest().Однако, как следует из названия, на самом деле он подходит только для текстовых форматов данных, поскольку обычно вы хотите выполнить какое-то действие на стороне клиента с данными, полученными с сервера (хотя не всегда, иногда люди просто отправляют XmlHttpRequests только обновить что-нибудь на сервере).

Кстати, я никогда не видел приложения, в котором отправка двоичных данных была бы уместна.

Чаще всего люди предпочитают отправлять данные на сервер с помощью POST или GET (что по сути является методом передачи пар имя-значение, присущим HTTP).Для отправки более сложных данных, например иерархических структур, их нужно как-то закодировать.XML-документы могут создаваться на основе JavaScript, отправляться на сервер и анализироваться на любые необходимые типы данных.Но поскольку XML может быть немного болезненным, многие разработчики вместо этого используют данные в кодировке JSON, поскольку их легко генерировать и легко анализировать.

То, что сервер отправляет обратно, столь же произвольно.Обычно вы указываете функцию обратного вызова в своем Javascript, которая обрабатывает входящие данные.Опять же, популярными вариантами являются XML и JSON, они легко анализируются в объект документа или структуру массива соответственно.Вы также можете отправить простой текст или другую упаковку, но помните, что тогда вам придется позаботиться об извлечении из нее полезных данных самостоятельно.Иногда также может быть полезно отправить клиенту фактические фрагменты HTML, чтобы напрямую обновить что-то на странице.

Для начала я предлагаю вам взглянуть на JQuery.Это очень легкий фреймворк, который абстрагирует многие неприятные вещи, связанные с совместимостью, и позволяет очень хорошо писать запросы AJAX.

Вы можете переместить все, что можно отправить по HTTP.Существуют ограничения на вызов в тот же домен, с которого загружена страница, но не на содержимое передачи.Вы также можете выполнять транзакции GET или POST.

Eсть Раскопайте блог запись под названием DUI.Stream и MXHR Это показывает то, что они называют «Multipart Xmlhttprequests». Сейчас это альфа -код, но есть демо, которое обрабатывает изображения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top