Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.08.2010, 16:41
Новичок на форуме
Отправить личное сообщение для midnight Посмотреть профиль Найти все сообщения от midnight
 
Регистрация: 10.08.2010
Сообщений: 5

Ajax request.readyState == 1
Всем привет, как видно из названия топика readyState выше 1 не поднимается - выкидывает такой эксепшн
[Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.statusText]"  nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"  location: "JS frame :: [url]http://virtual-dummy1/content/javascripts/ajax_request.js[/url] :: anonymous :: line 41"  data: no]

вот кусок кода до 41 строчки
function http_request(){
	this.request = null;
	this.callback= null; //function that runs after handling response
	this.stack = new Array();
	
	try {
		this.request = new XMLHttpRequest();
	} catch (e) {
		try {
			this.request = new ActiveXObject();
		}catch(e){}
	}
	if (this.request == null) throw('couldnot create request object');
}

http_request.prototype.send = function(method,url,data_array,callback) {
	if(method  && url){
		this.push_into_stack(method, url, data_array, callback);
	}
	
	if(this.request.readyState == 0 || this.request.readyState == 4){
		var settings = this.pop_out_of_stack();
		
		this.request.open(settings['method'], settings['url'], true);
		this.request.onreadystatechange = this.handle_response();
		//this.callback = settings['callback'];
		this.request.send(this.prepare_data(settings['data_array']));
	}else if(this.stack.length > 0){
		setTimeout('this.send()', 3000);
	}
};

http_request.prototype.handle_response = function() {
	if(this.request.readyState == 4){
		if(this.request.status == 200){
			this.execute_response();
		}else{
			throw ('There was a mistake during ajax transfer.');
		}
	}else{ // delete
		alert(this.request.statusText);
	}
};

выполнение:
try{
	var request = new http_request();
	request.send("GET","http://virtual-dummy1/1.txt");
}catch(e){
	alert(e.toString());
}

сразу скажу, что this.request.open(settings['method'], settings['url'], true); строчка валидная. Предположите что-нибудь =)

Последний раз редактировалось midnight, 10.08.2010 в 16:55.
Ответить с цитированием
  #2 (permalink)  
Старый 10.08.2010, 16:52
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Предполагаю. В HTTP-заголовке Content-Type указано «utf-8» без дефиса?
Ответить с цитированием
  #3 (permalink)  
Старый 10.08.2010, 17:06
Новичок на форуме
Отправить личное сообщение для midnight Посмотреть профиль Найти все сообщения от midnight
 
Регистрация: 10.08.2010
Сообщений: 5

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

Последний раз редактировалось midnight, 10.08.2010 в 18:15.
Ответить с цитированием
  #4 (permalink)  
Старый 10.08.2010, 18:25
Новичок на форуме
Отправить личное сообщение для midnight Посмотреть профиль Найти все сообщения от midnight
 
Регистрация: 10.08.2010
Сообщений: 5

так, проблема была с синтаксисом на строчке 25 this.request.onreadystatechange = this.handle_response(); убрал скобки у функции. теперь возникла проблема с ооп - в функции обработки handle_response не видно объект request. Предположите что-нибудь
Ответить с цитированием
  #5 (permalink)  
Старый 10.08.2010, 21:45
Новичок на форуме
Отправить личное сообщение для midnight Посмотреть профиль Найти все сообщения от midnight
 
Регистрация: 10.08.2010
Сообщений: 5

up
Ответить с цитированием
  #6 (permalink)  
Старый 10.08.2010, 22:18
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

http://javascript.ru/tutorial/object/thiskeyword
Ответить с цитированием
  #7 (permalink)  
Старый 12.08.2010, 16:42
Новичок на форуме
Отправить личное сообщение для midnight Посмотреть профиль Найти все сообщения от midnight
 
Регистрация: 10.08.2010
Сообщений: 5

ну конкретно с моим случаем что делать?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает jQuery меню с AJAX eugene1986 jQuery 0 08.07.2010 18:49
Ajax разбор метода mycoding jQuery 14 21.05.2010 10:57
Сохранение результата ajax запроса после нажатия 'back' gregOlsen AJAX и COMET 5 18.11.2009 12:23
Проблема с AJAX запросом + mod_rewrite BrokenEye AJAX и COMET 1 12.07.2009 02:08
Объясните как вызывается ajax скрипт AddressBook из формы prog90 AJAX и COMET 3 06.06.2009 16:12