Вот, что получилось
Js.extend(Js,{
ajax : function(param){
var xhr,
url = param.url,
method = param.method || 'GET',
data = param.data || null,
async = (param.async==undefined)?true:param.async,
complete = param.complete;
if(window.ActiveXObject){xhr=new ActiveXObject("Microsoft.XMLHTTP");}
else if(window.XMLHttpRequest) {xhr=new XMLHttpRequest();}
else {alert('Видимо в вашем браузере не поддреживается ajax');}
xhr.onreadystatechange = function(){
if(xhr.readyState != 4 || xhr.readyState==0){/*Loading*/;}
if(xhr.readyState == 4){
if(xhr.status == 200){/*Пришёл ответ*/if(complete){complete();}}
else{elem.html("Error: returned status code " + xhr.status + " " + xhr.statusText);}
}
};
if(method=='GET') {xhr.open(method, url, async);xhr.send(data);}
else{
xhr.open(method, url, async);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(data);
}
return xhr;
}
});
Я просто не пойму как же реализовать, чтобы можно было передать в этот запрос что делать когда всё загрузиться. Ведь надо будет получить
данные запроса, а как их получить если они внутри?
Их же надо прописать в вызываемой функции.
Т.е.
$.ajax({url:'index.php',complete:function(xhr){
if(xhr.responseText=='YES'){alert('YES');}
else if(xhr.responseText=='NO') {alert('NO');}
else {alert('Какие-то не те данные');}
}};
Но вот как в JQuery передаётся информация внутрь функции я не пойму.
JQuery пример
$.ajax({
url: '/ajax/example.html', // указываем URL и
dataType : "json", // тип загружаемых данных
success: function (data, textStatus) { // вешаем свой обработчик на функцию success
$.each(data, function(i, val) { // обрабатываем полученные данные
/* ... */
});
}
});
Вот как туда попадаёт data, если
function success() {
// If a local callback was specified, fire it and pass it the data
if ( s.success ) {
s.success.call( callbackContext, data, status, xhr );
}
// Fire the global callback
if ( s.global ) {
trigger( "ajaxSuccess", [xhr, s] );
}
}
Нету переменных, или я чего не пойму.