2009-05-17 2 views
10

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

+0

Вы говорите о другой среде, кроме браузера? –

+0

Нет Обычные браузеры. –

ответ

4

Если мы говорим об ajax, мы говорим о javascript? А про XMLHTTPRequest?

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

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

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

1

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

+0

Как вы производите/уничтожаете двоичные данные в javascript? –

+0

Возможно, вы можете использовать String.charCodeAt (index), чтобы получить код ASCII (я думаю) определенного символа в строке. –

1

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

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

0

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

2

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

Методология состоит в том, чтобы base64-кодировать данные, которые вы хотите отправить, а затем base64-декодировать данные на сервере (или клиенте) и использовать исходные данные по своему усмотрению.

1

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

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

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

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

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

Смежные вопросы