Support us

AJAX без jQuery

Оставить комментарий
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")');

Код с подсветкой тут. Буду рад, если данный код поможет в вашей работе. Также буду благодарен за комментарии, исправления и за ваши реализации.
Место солидарности беларусского ИТ-комьюнити

Далучайся!

Читайте также
10 популярных курсов по изучению JavaScript для крутой веб-разработки
10 популярных курсов по изучению JavaScript для крутой веб-разработки
10 популярных курсов по изучению JavaScript для крутой веб-разработки
JavaScript остается одним из самых популярных языков программирования в мире. Мы собрали список курсов и сертификаций по Javascript от основ до необычных особенностей. В листинге как платные, так и бесплатные онлайн-курсы. Погнали за новыми знаниями!
2 комментария
Как оплачиваются самые популярные языки GitHub и какой прогноз
Как оплачиваются самые популярные языки GitHub и какой прогноз
Как оплачиваются самые популярные языки GitHub и какой прогноз
Rust стал самым быстрорастущим языком по числу разработчиков
Rust стал самым быстрорастущим языком по числу разработчиков
Rust стал самым быстрорастущим языком по числу разработчиков
Бесплатные курсы по TypeScript, React, 3D разработке. По итогам могут взять на работу
Бесплатные курсы по TypeScript, React, 3D разработке. По итогам могут взять на работу
Бесплатные курсы по TypeScript, React, 3D разработке. По итогам могут взять на работу

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

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

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

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

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