Цитата:
Мне вот интересно, почему на такие вещи все так реагируют, как будто их заставляют этот очередной велосипед использовать? Видишь недостатки -- покажи, достоинства -- похвали, не нужен он тебе -- ну иди мимо. |
Вот, что получилось
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] ); } } Нету переменных, или я чего не пойму. |
Цитата:
|
Цитата:
if(xhr.status == 200){/*Пришёл ответ*/if(complete){complete(*!*xhr.responseText*/!*);}} |
Заработало :thanks:
|
Часовой пояс GMT +3, время: 08:50. |