Я новичок в AJAX, но в качестве обзора я хотел бы узнать, какие форматы вы можете загрузить и загрузить. Ограничен ли он JSON или XML или вы даже можете отправлять двоичные типы, такие как MP3 или UTF-8 HTML. И, наконец, у вас есть полный контроль над данными, байт для байта в чем-то вроде байтового массива или только строка, отправленная/полученная.
Какие форматы данных могут передавать AJAX?
Ответ 1
Если мы говорим об ajax, мы говорим о javascript? А про XMLHTTPRequest?
XMLHttpRequest, который является только HTTP-запросом, может передавать все. Но в javascript нет байтового массива. Только строки, цифры и т.д. Каждая вещь, которую вы получаете от вызова ajax, представляет собой фрагмент текста (responseText). Это может быть проанализировано в XML (что дает вам reponseXML). Специальные кодировки должны быть больше связаны с транспортом http.
Двоичный материал не зависит от ajax, а зависит от javascript. Есть некоторые странные кодировки для строк для доставки байтовых данных внутри javascript (особенно для изображений), но это не общее решение.
HTML не является проблемой, и это наиболее известный вариант использования. Из этого типа запроса вы получаете полученную строку HTML и добавляется к некоторому node в DOM за innerHTML, который анализирует HTML.
Ответ 2
Поскольку данные передаются по HTTP, вам необходимо убедиться, что вы используете какую-то кодировку. Одним из самых популярных является кодировка base64. Вы можете найти дополнительную информацию по адресу: http://www.webtoolkit.info/javascript-base64.html
Методология состоит в том, чтобы base64-кодировать данные, которые вы хотели бы отправить, а затем base64-декодировать данные на сервере (или клиенте) и использовать исходные данные по своему усмотрению.
Ответ 3
Вы можете передавать любые типы данных либо строку, либо байты
Ответ 4
Вы можете отправлять все, что захотите, проблема может заключаться в том, как обращаться с ним, как только вы его получите;)
Стандартный HTML, вероятно, является наиболее распространенным типом содержимого ajax, который используется там - вы также можете выбрать кодировку символов, хотя всегда лучше придерживаться одного типа кодирования.
Ответ 5
AJAX просто означает, что вы передаете данные асинхронно по HTTP с вызовом JavaScript. Таким образом, ваш script делает "обычный" HTTP-запрос, используя объект XmlHttpRequest(). Однако, как следует из названия, оно действительно подходит только для текстовых форматов данных, поскольку вы обычно хотите выполнить некоторые действия на стороне клиента с данными, полученными с сервера (не всегда, хотя иногда люди просто отправляют XmlHttpRequests только для что-то обновить на сервере).
С одной стороны, я никогда не видел приложения, где отправка двоичных данных была бы в любом случае подходящей.
Чаще всего люди предпочитают отправлять данные на сервер с помощью POST или GET (который в основном представляет собой метод передачи пар имя-значение, свойственный HTTP). Для отправки более сложных данных, например иерархических структур, их нужно каким-то образом закодировать. XML-документы могут быть сделаны изначально на JavaScript, отправлены на сервер и разобраны в любые типы данных. Но поскольку XML может быть немного больно, многие разработчики вместо этого используют JSON-кодированные данные, потому что они легко генерируются и легко анализируются.
То, что сервер отправляет назад, одинаково произвольно. Обычно вы указываете функцию обратного вызова в вашем Javascript, который обрабатывает входящие данные. Опять же, популярными выборами являются XML и JSON, они легко анализируются в документе или структуре массива соответственно. Вы также можете отправить обычный текст или другую упаковку, но помните, что вам необходимо позаботиться о том, чтобы извлечь из нее полезные данные. Иногда также может быть полезно отправить фактические фрагменты HTML клиенту для немедленного обновления на странице.
Во-первых, я предлагаю вам взглянуть на JQuery. Это очень легкий фреймворк, который абстрагирует многие злые вещи совместимости и позволяет вам писать запросы AJAX очень приятно.
Ответ 6
Вы можете перемещать все, что может быть отправлено через HTTP. Существуют ограничения в том, что вызов выполняется в том же домене, что и загруженная страница, но не в содержимом передачи. Вы также можете выполнять транзакции GET или POST.
Ответ 7
Существует запись Digg the blog под названием DUI.Stream и MXHR, которые показывают, что они называют "Multipart XMLHttpRequests". Теперь это альфа-код, но есть демон обрабатывающая изображения.