17% скидка на размещение рекламы на площадках devby — до 20 ноября. Клац!
Support us

AJAX без jQuery

12 комментариев
AJAX без jQuery
Последнее время много изучаю AJAX и обратил внимание на то, что многие разработчики используют для отправки запросов jQuery. Но что, если проект у вас маленький и использование данной библиотеки только утяжеляет его? Предлагаю вашему вниманию способ отправки AJAX-запросов без jQuery:

// URL, на который будем посылать запрос
var locationRequest = 'server_side.php'; 
/*Попытаемся создать код мультиплатформенным.
IE и нормальные браузеры создают объект XMLHttpRequest по разному.
Кроме того, разные версии IE его создают по разному.
Придётся повторить операцию для всех.
*/
var request;
function createRequest() {
// Это для адекватных современных браузеров
	if (window.XMLHttpRequest) request = new XMLHttpRequest();
// Internet Explorer
	else if (window.ActiveXObject) {
// IE разных версий		
		try {
			request = new ActiveXObject('Msxml2.XMLHTTP');
		} catch (e){}											
		try {													
			request = new ActiveXObject('Microsoft.XMLHTTP');
		} catch (e){}
	}
	return request;
}
 
function sendRequest(locationRequest, parameters) {
	// Создаем запрос
	request = createRequest();
	if (request) {
// Посылаем POST-запрос. 
// Указываем адрес, false - асинхронный режим выключен
	request.open("POST", locationRequest, false);
	// Отправляем дополнительно header, т.к. метод POST
	request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	// Отправляем запрос с параметрами 
	//(несколько параметров разделять &)
	request.send(parameters);
		// Если всё хорошо
		if (request.status == 200) {
			// Берём ответ в виде строки
			var stRespond = request.responseText;
// Выполняем eval(), предварительно проверив данные. Мало ли ;)
			var evalRespond = !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(stRespond.replace(/"(\.|[^"\])*"/g, ''))) && eval('(' + stRespond + ')');
			// Создаем массив данных
			var arrayRespond = new Object(evalRespond);
		} else { //Если сервер вернул ошибку
			alert("Ошибка получения данных:\n" + request.statusText);
		}
	} else {
		alert("Браузер не поддерживает технологию AJAX");
	}
	return arrayRespond;
}
 
// использование
sendRequest(locationRequest,'параметры, например (showPage="3")');

Код с подсветкой тут. Буду рад, если данный код поможет в вашей работе. Также буду благодарен за комментарии, исправления и за ваши реализации.
Читайте также
В России русифицировали JavaScript
В России русифицировали JavaScript
В России русифицировали JavaScript
7 комментариев
Python или JavaScript: что выбрать в 2025 году? Смотрим различия и рекомендуем годные курсы
Python или JavaScript: что выбрать в 2025 году? Смотрим различия и рекомендуем годные курсы
Python или JavaScript: что выбрать в 2025 году? Смотрим различия и рекомендуем годные курсы
Выбор языка программирования — это стратегия вашего развития в IT.  Какой язык откроет для вас больше возможностей в 2025 году: Python или JavaScript? Пробуем разобраться и не включать холивар.   
1 комментарий
Фронтендер — это фуллстак. Примите реальность. Разработчик рассказывает, как изменился рынок
Фронтендер — это фуллстак. Примите реальность. Разработчик рассказывает, как изменился рынок
Фронтендер — это фуллстак. Примите реальность. Разработчик рассказывает, как изменился рынок
Работы для джунов очень мало: у компаний ограниченные бюджеты, а ИИ становится всё более популярным. Технологии постоянно меняются, и объём теоретической «базы» значительно вырос. Фреймворки каждый год добавляют новые возможности. Расскажу, как обстоят дела на рынке фронтендеров.
37 комментариев
TIOBE назвал «язык года»-2024
TIOBE назвал «язык года»-2024
TIOBE назвал «язык года»-2024
1 комментарий

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.