Доброго времени суток, возникла такая задача раньше использовал всегда Jquery, а сейчас необходимо отправить запрос AJAX на чистом JS,
создал объект XMLHttpRequest:
function createXMLHttp() {
if (typeof XMLHttpRequest != "undefined") { // аля Mozilla
return new XMLHttpRequest();
} else if (window.ActiveXObject) { // для IE
var aVersions = [
"MSXML2.XMLHttp.5.0",
"MSXML2.XMLHttp.4.0",
"MSXML2.XMLHttp.3.0",
"MSXML2.XMLHttp",
"Microsoft.XMLHttp"
];
for (var i = 0; i < aVersions.length; i++) {
try {
var oXmlHttp = new ActiveXObject(aVersions[i]);
return oXmlHttp;
} catch (oError) {}
}
throw new Error("Невозможно создать объект XMLHttp.");
}
}
// упаковка формы
function getRequestBody(oForm) {
var aParams = new Array();
for (var i = 0; i < oForm.elements.length; i++) {
var sParam = encodeURIComponent(oForm.elements[i].name);
sParam += "=";
sParam += encodeURIComponent(oForm.elements[i].value);
aParams.push(sParam);
}
return aParams.join("&");
}
// функция Ajax POST
function postAjax(url, oForm, callback) {
// создаем Объект
var oXmlHttp = createXMLHttp();
// получение данных с формы
var sBody = getRequestBody(oForm);
// подготовка, объявление заголовков
oXmlHttp.open("POST", url, true);
oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
// описание функции, которая будет вызвана, когда придет ответ от сервера
oXmlHttp.onreadystatechange = function() {
if (oXmlHttp.readyState == 4) {
if (oXmlHttp.status == 200) {
callback(oXmlHttp.responseText);
} else {
callback('error' + oXmlHttp.statusText);
}
}
};
// отправка запроса, строка данных с формы
oXmlHttp.send(sBody);
}
И сама форма:
var theForm = document.getElementById( 'theForm' );
new stepsForm( theForm, {
onSubmit : function( form ) {
classie.addClass( theForm.querySelector( '.simform-inner' ), 'hide' );
form.submit();//отправка формы
var messageEl = theForm.querySelector( '.final-message' );
messageEl.innerHTML = 'Спасибо, Ваша анкета отправлена';
classie.addClass( messageEl, 'show' );
}
} );
Все работает как надо, но хотелось бы сделать отправку через AJAX и выводилось .final-message, как подключить его не пойму