Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.08.2011, 07:22
Аспирант
Отправить личное сообщение для SunTechnique Посмотреть профиль Найти все сообщения от SunTechnique
 
Регистрация: 29.08.2011
Сообщений: 30

XMLHttpRequest чет не работает.
привет всем. знаю что тема заезженая, но я уже везде смотрел какие могут быть проблемы и вроде как таких проблем не встрачал.
дело в том что у меня локальная сеть и в это сети у меня на компе свой Апач сервер.
там я на виртуальном хосте делаю простой PHP обработчик и в том же месте JavaScript с запросом, который обращается к этому обработчику.
но результат такой у меня чуть чуть начинает работать только тогда, когда я в функции open указываю обсалютный путь физический к ПХП файлу, а такой вид пути как http://myhost/index.php - он не воспринимает и просто вообще не подключается к нему. ну в общем смотрите сами что я делаю.

php:
<?php
$text = "<response><flag></flag><message>" . "Cool" . "</message></response>";
echo $text;
?>


ява срипт:

function MenuClck(id){
	h = new XMLHttpRequest();
	//как видите тут у меня абсолютный путь
	h.open("GET","file:///Z|/home/dreamw/www/drw/js_get.php");
	//h.open("GET","/drw/js_get.php");
	h.onreadystatechange = fXMLEvent();
	//h.setRequestHeader('Content-Type',  "text/xml");
	//http.onreadystatechange = handleResponse;
	h.send();
	
}

function fXMLEvent(){
	try{
		if(h.readyState == 4){
			if(h.status == 200){
				alert('XML Response ' + h.responseText);
			}else{
				alert("Not get data " + h.statusText);
			}
		}else{
// если был указан абсолютный путь то максимум   доходит до сюда
			alert('h.responseText' + h.statusText + h.responseText);
		}
	}catch(e){
// сюда оно попадает если был указан путь в виде URL
		alert('Connection Error ' + e.description);
	}
}

</script>


помогите понять в чем проблема ? почему не работает вообще ?
и как сделать что бы оно принимало путь в виде веб адреса ?
заранее спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 31.08.2011, 07:27
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Если вы пытаетесь подключиться к файлу не в пределах домена где лежит скрипт, то у вас ничего не получится из-за политики безопасности.. В пределах своего домена должно работать, так же можно обращаться к файлу указав относительный путь.
Ответить с цитированием
  #3 (permalink)  
Старый 31.08.2011, 07:50
Аспирант
Отправить личное сообщение для SunTechnique Посмотреть профиль Найти все сообщения от SunTechnique
 
Регистрация: 29.08.2011
Сообщений: 30

лежи у меня все в пределах домена.
да любой путь указываю... максимум он доходит до строки которую я уже пометил комментарием.
Ответить с цитированием
  #4 (permalink)  
Старый 31.08.2011, 08:04
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

судя по этому file:///Z|/home/dreamw/www/drw/js_get.php пути вы тестите скрипт запуская просто html страничку в браузере, так работать не будет.. Вам нужно поместить скрипт на хост и оттуда уже запускать.
Ответить с цитированием
  #5 (permalink)  
Старый 31.08.2011, 08:07
Аспирант
Отправить личное сообщение для SunTechnique Посмотреть профиль Найти все сообщения от SunTechnique
 
Регистрация: 29.08.2011
Сообщений: 30

дак это и так физический путь Хоста, по другому его можно сделать так -
http://dreamw/drw/js_get.php
я так делал, и тогда вообще соединение не происходит.
Ответить с цитированием
  #6 (permalink)  
Старый 31.08.2011, 08:08
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

И да вот так делать нельзя:
h.onreadystatechange = fXMLEvent();
нужно так:
h.onreadystatechange = fXMLEvent;
Ответить с цитированием
  #7 (permalink)  
Старый 31.08.2011, 08:10
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от SunTechnique
http://dreamw/drw/js_get.php
я так делал, и тогда вообще соединение не происходит.
Именно так и нужно делать... А вообще ошибка была в том что я указал выше, вы не присваивали функцию, вы просто ее запускали сразу же
Ответить с цитированием
  #8 (permalink)  
Старый 31.08.2011, 08:12
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

и да во вторых у вас работать не будет и еще по одной причине, переменная h будет не определена внутри функции fXMLEvent
Ответить с цитированием
  #9 (permalink)  
Старый 31.08.2011, 08:15
Аспирант
Отправить личное сообщение для SunTechnique Посмотреть профиль Найти все сообщения от SunTechnique
 
Регистрация: 29.08.2011
Сообщений: 30

я щас убрал скобки как вы сказали h.onreadystatechange = fXMLEvent;
и все заработало, только через чур сильно. там стали вылетать все ALERT
которые я поставил... странно. даже та что в catch(e)
Ответить с цитированием
  #10 (permalink)  
Старый 31.08.2011, 08:16
Аспирант
Отправить личное сообщение для SunTechnique Посмотреть профиль Найти все сообщения от SunTechnique
 
Регистрация: 29.08.2011
Сообщений: 30

и несколько раз сработала функция fXMLEvent;
два раза точно, хотя сделал всего один клик.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает код внутри циклов DZHETIGAPA Events/DOM/Window 1 21.06.2011 01:03
XMLHttpRequest не работает lgv Firefox/Mozilla 0 14.04.2010 17:07
ява-скрипт выборочно работает-не работает zeta777 Internet Explorer 0 20.01.2010 11:41
Динамическая HTML форма (FireFox - работает, IE - не работает) dm1tr1y Общие вопросы Javascript 10 11.12.2009 15:59
Скрипт меню-гармошки работает выборочно Extern Элементы интерфейса 2 23.02.2009 15:32