Мне нужно отправить JSON (который я могу преобразовать) на сервер и получить полученный JSON на стороне пользователя без использования JQuery.
Если мне следует использовать GET, как передать JSON в качестве параметра? Есть ли риск, что это будет слишком долго?
Если мне нужно использовать POST, как мне установить эквивалент onload
функции в GET?
Или мне следует использовать другой метод?
Замечание
Этот вопрос не об отправке простого AJAX. Его не следует закрывать как дубликат.
javascript
json
post
get
xmlhttprequest
Жером Верстринж
источник
источник
XMLHttpRequest
. Несмотря на название, вы можете использовать его для данных JSON (и именно так jQuery делает это в фоновом режиме).sending
запроса ajax, что является довольно общей вещью. Этот просит,sending
но иreceiving JSON
в чистом JavaScript. Кроме того, чтобы отправить этот JSON обратно, вы должны знать, как решить эту часть проблемы,server-side
что является еще одной вещью, не упомянутой в указанном вопросе.onreadystatechange
- это то, что вы используете для эмуляцииonload
, как показано в принятом ответе ниже. Для синтаксического анализа вы просто используетеJSON.parse()
(опять же, как показано в ответе), но я предполагал, что вы уже знали об этом, так как упомянули в вопросе строковую обработку. Я попытался помочь вам, указав не на 1, а на 2 вопроса по этим вопросам. Очевидно, есть некоторая разница - редко бывает два абсолютно идентичных вопроса - но это тривиально, если вы уже знаете, как структурировать и анализировать JSON. Тем не менее, поскольку вы и @ hex494D49 не согласны, я предлагаю открыть его повторно.Ответы:
Отправка и получение данных в формате JSON методом POST
Отправка и получение данных в формате JSON методом GET
Обработка данных в формате JSON на стороне сервера с помощью PHP
Предел длины HTTP-запроса Get зависит от используемого сервера и клиента (браузера) и составляет от 2 до 8 кБ. Сервер должен вернуть статус 414 (Request-URI Too Long), если URI длиннее, чем сервер может обработать.
Примечание. Кто-то сказал, что я могу использовать имена состояний вместо значений состояний; другими словами, я мог бы использовать
xhr.readyState === xhr.DONE
вместоxhr.readyState === 4
. Проблема в том, что Internet Explorer использует разные имена состояний, поэтому лучше использовать значения состояний.источник
xhr.status === 200
.XHR failed loading: POST
Использование нового API- интерфейса :
источник
JSON.stringify
дважды.