powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Не работает AJAX. Что сделать, чтобы заработал?
16 сообщений из 16, страница 1 из 1
Не работает AJAX. Что сделать, чтобы заработал?
    #35480114
Бурляев Вячеслав
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема в том, что есть скрипт с использованием AJAX.
Форма авторизации (выполнена с помощью JavaScript):
Код: plaintext
1.
2.
3.
4.
function UserForm(){
	var parTab = document.getElementById("parentTab"); 
	parTab.innerHTML="<form name='loginForm'><table class='body' align='center'><tr><td>Логин:</td><td><input type='text'  id='nameuser'><td>Пароль:</td><td><input type='password'  id='pass'></td></tr><tr><td></td><td><input type='submit' id='submit' value='Вход' onClick='login_func(\"submit\");return false;'></td></tr></table></form>";
}
И функция, выполняемая при нажатии на кнопку:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
function login_func(var){
	var parTab = document.getElementById("parentTab");
	if(!getCookie('login') || getCookie('login')=='-'){
		if(var == 'submit'){
			var pass = document.getElementById('pass').value;
			var name = document.getElementById('nameuser').value;
			var subm = document.getElementById('submit').value;
			var cookieLog = 'login';
		}
	}
	ajaxRequest.query(
		'http://localhost/user_reg.php',
		{name: name,
		pass: pass},
		function(result, errors){
			if(result['er']!=null){
				alert(result['er']);
			}else if(result['data']!=null){
					setCookie('login',result['data'][ 4 ]+"|"+result['data'][ 3 ], 10 ,'/');
					setCookie('Name',result['data'][ 1 ], 10 ,'/');
					setCookie('img',result['data'][ 2 ], 10 ,'/');
					removeForm(result['data'][ 1 ],result['data'][ 2 ]);

				}else if( result['form'] != null ){
						setCookie('login','-', 1 ,'/');
						logForm();
					}
		},
		false
	);
}
ajaxRequest.query выполняется, но не так как надо. а именно: для выполнения функции, записанной в параметре необходимо, чтобы статус в ajaxRequest.ReadyState был равен 4 (метод req.onreadystatechange, который описывается в ajaxRequest.query).
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
ajaxRequest.query=function(url,_35,_36,_37){
var req=new this();
req.caching=!_37;
req.onreadystatechange=function(){
if(req.readyState== 4 ){
_36(req.responseJS,req.responseText);
} else {
}
};
req.open(null,url,true);
req.send(_35);
};
Но при выполнении этот стаус всегда равен 1. ReadyState устанавливатся в 4 в методе _dataReady
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
t._dataReady=function(_16,js){
with(this){
if(caching&&_ldObj){
ajaxRequest.CACHE[_ldObj.hash]=[_16,js];
}
responseText=responseXML=_16;
responseJS=js;
if(js!==null){
status= 200 ;
statusText="OK";
}else{
status= 500 ;
statusText="Internal Server Error";
}
_changeReadyState( 2 );
_changeReadyState( 3 );
_changeReadyState( 4 );
_cleanup();
}
};
которая вызывается в методе send (вызывается из метода ajaxRequest.query)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
t.send=function(_7){
if(!this.readyState){
return;
}
this._changeReadyState( 1 ,true);
this._ldObj=null;
var _8=[];
var _9=[];
if(!this._hash2query(_7,null,_8,_9)){
return;
}
var _a=null;
if(this.caching&&!_9.length){
_a=this._openArgs.username+":"+this._openArgs.password+"@"+this._openArgs.url+"|"+_8+"#"+this._openArgs.method;
var _b=ajaxRequest.CACHE[_a];
if(_b){
this._dataReady(_b[ 0 ],_b[ 1 ]);
return false;
}
}
var _c=(this.loader||"").toLowerCase();
if(_c&&!ajaxRequest.LOADERS[_c]){
return this._error("unk_loader",_c);
}
var _d=[];
var _e=ajaxRequest.LOADERS;
for(var _f in _e){
var ldr=_e[_f].loader;
if(!ldr){
continue;
}
if(_c&&_f!=_c){
continue;
}
var _11=new ldr(this);
ajaxRequest.extend(_11,this._openArgs);
ajaxRequest.extend(_11,{queryText:_8.join("&"),queryElem:_9,id:(new Date().getTime())+""+ajaxRequest.COUNT++,hash:_a,span:null});
var _12=_11.load();
if(!_12){
this._ldObj=_11;
ajaxRequest.PENDING[_11.id]=this;
return true;
}
if(!_c){
_d[_d.length]="- "+_f.toUpperCase()+": "+this._l(_12);
}else{
return this._error(_12);
}
}
return _f?this._error("no_loader_matched",_d.join("\n")):this._error("no_loaders");
};
Вот вызов метода _dataReady из метода send
Код: plaintext
1.
2.
3.
4.
5.
_a=this._openArgs.username+":"+this._openArgs.password+"@"+this._openArgs.url+"|"+_8+"#"+this._openArgs.method;
var _b=ajaxRequest.CACHE[_a];
if(_b){
this._dataReady(_b[ 0 ],_b[ 1 ]);
return false;
}
при проверке значения _b алерт выдаёт undefined, хотя _a имеет значение.
Вот и не могу понять, почему _b ничего не присваивается..... Я думаю что в этом проблема
Что где надо изменить, может кто-нибудь знает?
...
Рейтинг: 0 / 0
Не работает AJAX. Что сделать, чтобы заработал?
    #35480141
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ваше _35 должно быть в виде "name=MyName&pass=Password"

А что это за библиотека? существует достаточное количество библиотек в которых делается то же самое но более доступно (без _NN)
...
Рейтинг: 0 / 0
Не работает AJAX. Что сделать, чтобы заработал?
    #35480287
Бурляев Вячеслав
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрел код, так и не понял, как другой синтаксис _35 повлияет на ajaxRequest.CACHE[_a]

Кстати, я думал существует только одна библиотека AJAX:-)
Потому что за библиотека сказать точно не могу. Она мне досталась вместе со скриптом.
Наверное из-за того, что существует множество библиотек, то наверное решение вопроса на форуме не найти, так как многие не смогут ответить, что такое ajaxRequest.CACHE[_a]
...
Рейтинг: 0 / 0
Не работает AJAX. Что сделать, чтобы заработал?
    #35480293
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про _35 я просто нашел первую ошибку в коде и ее озвучил.
Если хотите конкретный ответ - приложите неработающий код в виде архива к посту - сделаю рабочий.
...
Рейтинг: 0 / 0
Не работает AJAX. Что сделать, чтобы заработал?
    #35480313
Бурляев Вячеслав
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы так не утверждал, что код не рабочий.
Он работает на удалённом сервере, на локальном работать не хочет.
Тут дело в настройках, похоже, что сервера. Только вот в каких?
Я сейчас думаю, и прихожу к выводу: какие настройки сервера требуется изменять для работы технологии AJAX? Браузеры думаю трогать не стоит, ибо как уже говорил, что корректность работы скрипта зависит от сервера, на котором он установлен
...
Рейтинг: 0 / 0
Не работает AJAX. Что сделать, чтобы заработал?
    #35480320
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну думайте
...
Рейтинг: 0 / 0
Не работает AJAX. Что сделать, чтобы заработал?
    #35481784
Бурляев Вячеслав
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если Вы не видели эту библиотеку, и не знаете об ajaxRequest.cache ничего, то с чего вы считаете, что код не рабочий, чтоб вы там что-то изменили? Да и к чему копаться с чужим рнепоятно откуда взятым кодом е понятно какой библиотеки?
Про _35 вы уже отвечали, что просто увидели первую попавшуюся ошибку, но так и не рассказали, почему вместо {parameter : value} надо писать parameter=value. Вы же не знакомы с этой библиотекой, так почему утверждаете, что приведённый синтаксис есть ошибка7 Непонятно. И вы этого объяснить не можете.....

надеюсь, что всё-таки кто-нибудь слышал про ajaxRequest.cache и откликнется.....
...
Рейтинг: 0 / 0
Не работает AJAX. Что сделать, чтобы заработал?
    #35481859
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_35 передается методу send() и если это метод объекта XMLHttpRequest ему должна передаваться строка параметров. Хотя в ИЕ кажется можно и Object().
О том что то-то там не работает Вы написали в первом посте.
Почти все участники форума имеют в своем активе программный код более красивый и уж точно работающий и им скучно разбираться в загадочных переменных, которых по меньшей мере уже _35.
Я Вам предложил запостить архив с кодом на форум и обещал сдалать работающий код локально, интернетно, файлово и как угодно еще. Не хотите - не надо.
...
Рейтинг: 0 / 0
Не работает AJAX. Что сделать, чтобы заработал?
    #35481928
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бурляев ВячеславИ вы этого объяснить не можете.....

надеюсь, что всё-таки кто-нибудь слышал про ajaxRequest.cache и откликнется.....

Да Вы меня раскололи. Ничегошеньки не знаю о ajaxRequest.cache.
...
Рейтинг: 0 / 0
Не работает AJAX. Что сделать, чтобы заработал?
    #35482034
Бурляев Вячеслав
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apapacy
Почти все участники форума имеют в своем активе программный код более красивый и уж точно работающий и им скучно разбираться в загадочных переменных, которых по меньшей мере уже _35.
Я Вам предложил запостить архив с кодом на форум и обещал сдалать работающий код локально, интернетно, файлово и как угодно еще. Не хотите - не надо.
Это готовая библиотека, понимаете? И не моё произведение.
И на одном сервере он работает (происходит вызов php-файла, указанного в качестве параметра в ajaxRequest.query), а на другом не желает (php-файл не выполняется).
Потому НЕ НАДО править код.

Я пытаюсь узнать, нужно ли производить какие-то настройки на сервере или в браузере для того, чтобы технология AJAX работала. Может права где-то нужны, может галочки поставить....
...
Рейтинг: 0 / 0
Не работает AJAX. Что сделать, чтобы заработал?
    #35482037
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПонимаете?
Понимаю. Я и не обвинял Вас в том что Вы это сами написали. Дайте ссылку на сайт в конце концов. Как можно это все разобрвть в редоставленном Вами виде? Я даже не знаю что не работает толком.
...
Рейтинг: 0 / 0
Не работает AJAX. Что сделать, чтобы заработал?
    #35482068
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бурляев Вячеслав
Я пытаюсь узнать, нужно ли производить какие-то настройки на сервере или в браузере для того, чтобы технология AJAX работала. Может права где-то нужны, может галочки поставить....
А так бы и сказали сразу. К чему весь этот код?

На сервере надо разместить библиотеки JavaScript.
В браузере следует поставить галочку enabe JavaScript.
Извините, что туплю.
...
Рейтинг: 0 / 0
Не работает AJAX. Что сделать, чтобы заработал?
    #35482143
Бурляев Вячеслав
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код, потому что эти два пункта я понимаю. Думал может быть ещё что-то влияет....
Ладно, тема закрыта.
...
Рейтинг: 0 / 0
Не работает AJAX. Что сделать, чтобы заработал?
    #35482151
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так этож библиотека Котерова и Ко.
Вам на этот форум.

http://forum.dklab.ru/js/jshttprequest/
...
Рейтинг: 0 / 0
Не работает AJAX. Что сделать, чтобы заработал?
    #35482152
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пост скриптум. Хоть бы строку подключеняия показали.
...
Рейтинг: 0 / 0
Не работает AJAX. Что сделать, чтобы заработал?
    #35482331
Бурляев Вячеслав
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Действительно, это библиотека Котерова. Один к одному. Только почему-то название объектов и файлов изменено....
Спасибо, что нашли разработчиков библиотеки.
А подключение так и идёт, как у Котерова прописано - через HTML-тэги <scripts>
Туда пойду щас.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Не работает AJAX. Что сделать, чтобы заработал?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]