@aks03vova

Как сохранить результат GET запроса в переменную на JS?

С помощью XMLHttpRequest осуществляю GET запрос. Потом устанавливаю onreadystatechange и на readyState == 4 вывожу результат. Можно ли как-то проверить readyState без onreadystatechange и сохранить результат в переменную, чтобы потом использовать в любой части кода?
  • Вопрос задан
  • 1608 просмотров
Пригласить эксперта
Ответы на вопрос 2
ThunderCat
@ThunderCat Куратор тега JavaScript
{PHP, MySql, HTML, JS, CSS} developer
$.ajax({
                url: url,
                dataType: "html",
                type: "GET",
                data: senddata,
                success: (function (data) {
                    if (data.lenght > 0) {
                        do_some_stuff(data);
                    }
                    else {
                        console.log('Шеф, усе пропало!');
                    }
                })
            })
Ответ написан
BRAGA96
@BRAGA96
Функция ajax запроса на plain js.
function ajax(params) {
	var request = new XMLHttpRequest();
	request.open(params.type, params.url, params.async ? params.async : true);
	request.onload = function() {
	  if (request.status >= 200 && request.status < 400) {
	    // Успешный запрос
	    if (params.success) params.success(request.responseText);
	  } else {
	    // Запрос дошел до сервера, но вернул ошибку
	    if (params.error) params.error(request, request.status);
	  }
	};
	request.onerror = function() {
		// Ошибка запроса
		if (params.error) params.error(request, request.status);
	};
	request.setRequestHeader('Content-Type', params.contentType ? params.contentType : 'application/x-www-form-urlencoded; charset=UTF-8');
	request.send(params.data);
}


Вызов функции. В колбеке success делаем с ответом что хотим. Не забывайте, что XHR запросы происходят асинхронно.
ajax({
	type: 'GET',
	url: 'https://jsonplaceholder.typicode.com/posts',
	contentType: 'application/json; charset=UTF-8',
	data: { key: 'prop' },
	async: true,
	success: function(response) {
		console.log(response);
	},
	error: function(xhr, status) {
		console.log(xhr, status);
	}
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
17 апр. 2024, в 00:48
35000 руб./за проект
17 апр. 2024, в 00:13
800 руб./за проект
17 апр. 2024, в 00:06
240000 руб./за проект