Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2012, 18:24   #1
Mr_freeman
Форумчанин
 
Аватар для Mr_freeman
 
Регистрация: 17.01.2010
Сообщений: 277
По умолчанию XMLHttpRequest. Ошибка. Непонятный statusText.

Зравствуйте. Возникла проблемка. Я еще только начинаю изучать технологию Ajax. Переписал пример из учебника(подключение, передача и получение простой текстовой переменной).

Вот фрагмент,в котором ошибка:

PHP код:
request.onreadystatechange = function()
{
 if (
this.readyState == 4)
 {
  if (
this.status == 200)
  {
   if (
this.responseText != null)
    {
      
document.getElementById("info").innerHTML this.responseText
    
}
    else 
alert("Данные не получены")
  }
  else 
alert("Ошибка" this.statusText)
 }

Выскакивает алерт с надписью "Ошибка". Странно что там нету кода статуса, и я не могу понять в чем дело.

Пробовал запустить этот пример у друга - у него все работает.

Подскажите пожалуйста с чем это может быть связано, буду очень благодарен. Заранее огромное спасибо.
Mr_freeman вне форума Ответить с цитированием
Старый 14.02.2012, 19:39   #2
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

По этому куску кода мало что можно сказать, кроме того, что код ответа не 200 Может Вы урл неправильно прописали и он отдаёт 404, может в серверном скрипте ошибка, может ещё что-то, а на statusText особо надеяться не стоит, он вполне может быть пустым. Поставьте лучше FireBug, если у Вас файрфокс или в хроме f12 нажмите, там есть вкладка "Сеть", и посмотрите, что реально отдаётся по аяксу.
А когда напишите этот пример посмотрите в сторону jQuery - там всё с аяксом намного проще
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 15.02.2012, 22:46   #3
Mr_freeman
Форумчанин
 
Аватар для Mr_freeman
 
Регистрация: 17.01.2010
Сообщений: 277
По умолчанию

Вот полный код:
PHP код:
<html>
<
head> <titleПримеры </title> </head>

<
div id "info">
here
</div>

<
script>
params "vvar=olololool"
request = new ajaxRequest()
request.open("POST","exa.php"true)
request.setRequestHeader("Content-type","application/x-www-form-urlencoded")
request.setRequestHeader("Content-length",params.length)
request.setRequestHeader("Connection","close")

request.onreadystatechange = function()
{
 if (
this.readyState == 4)
 {
  if (
this.status == 200)
  {
   if (
this.responseText != null)
    {
      
document.getElementById("info").innerHTML this.responseText
    
}
    else 
alert("Данные не получены")
  }
  else 
alert("Ошибка " this.statusText)
 }
}

request.send(params)
function 
ajaxRequest()
{
 try 
 {
  var 
request = new XMLHttpRequest()
 }
 catch(
e1)
 {
  try
  {
   
request = new ActiveXObject("Msxml2.XMLHTTP")
  }
  catch(
e2)
  {
   try
   {
    
request = new ActiveXObject("Microsoft.XMLHTTP")
   }
   catch(
e3)
   {
    
request false
   
}
  }
 }
 return 
request

И пхп-файлик:
PHP код:
<?php
if (isset($_POST['vvar']))
{
echo 
$_POST['vvar'];
}
?>
Если на другом компьютере работает,в чем может быть проблема у меня????
Mr_freeman вне форума Ответить с цитированием
Старый 16.02.2012, 00:52   #4
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Вы не совсем ответили на вопрос Greblin: что посылается и что принимается от сервера?
Браузеры, ОС одинаковы? Сам по себе скрипт(php) то отрабатывает?
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 16.02.2012, 02:03   #5
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Проверил Ваш скрипт. До исправления ошибок в HTML синтаксисе не было никаких алертов вообще, после всё заработало.
Код:
<html> 
<head> <title> Примеры </title> </head> 
<body>
<div id = "info"> 
here 
</div> 

<script type="text/javascript"> 
function ajaxRequest() 
{ 
 try  
 { 
  var request = new XMLHttpRequest() 
 } 
 catch(e1) 
 { 
  try 
  { 
   request = new ActiveXObject("Msxml2.XMLHTTP") 
  } 
  catch(e2) 
  { 
   try 
   { 
    request = new ActiveXObject("Microsoft.XMLHTTP") 
   } 
   catch(e3) 
   { 
    request = false 
   } 
  } 
 } 
 return request 
}  


params = "vvar=olololool"
request = ajaxRequest() 
request.open("POST","exa.php", true) 
request.setRequestHeader("Content-type","application/x-www-form-urlencoded") 
request.setRequestHeader("Content-length",params.length) 
request.setRequestHeader("Connection","close") 

request.onreadystatechange = function() 
{ 
 if (this.readyState == 4) 
 { 
  if (this.status == 200) 
  { 
   if (this.responseText != null) 
    { 
      document.getElementById("info").innerHTML = this.responseText 
    } 
    else alert("Данные не получены") 
  } 
  else alert("Ошибка " + this.statusText) 
 } 
} 

request.send(params)
</script>
</body>
</html>
Если и после этого не будет работать ищите тупую ошибку, типа неправильного имени пхп-файла или ещё чего. Или же есть вероятность, что php-файл у Вас лежит на другом домене (даже если у Вас денвер, все домены локальные и т.д.), тогда тут срабатывает защита от XSS.
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 16.02.2012, 12:24   #6
Mr_freeman
Форумчанин
 
Аватар для Mr_freeman
 
Регистрация: 17.01.2010
Сообщений: 277
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
Вы не совсем ответили на вопрос Greblin: что посылается и что принимается от сервера?
Браузеры, ОС одинаковы? Сам по себе скрипт(php) то отрабатывает?
Посылаю и принимаю я обычную текстовую переменную.
Насчет браузеров и ОС: я проверяю все локально, обычный htm документик и php файл, использую денвер. (С php и раньше работал - все в порядке)
Насчет срабатывания скрипта(php) я ничего не могу сказать, так как я пока не просвящен хорошо во всей этой теме передачи данных.
Mr_freeman вне форума Ответить с цитированием
Старый 16.02.2012, 12:27   #7
Mr_freeman
Форумчанин
 
Аватар для Mr_freeman
 
Регистрация: 17.01.2010
Сообщений: 277
По умолчанию

Цитата:
Сообщение от Greblin Посмотреть сообщение
Проверил Ваш скрипт. До исправления ошибок в HTML синтаксисе не было никаких алертов вообще, после всё заработало.
Какие ошибки вы исправляли?

И еще вопрос, какой вы использовали php скрипт? Тот, что я выкладывал?

Сейчас попробую с вашим кодом проверить.
Mr_freeman вне форума Ответить с цитированием
Старый 16.02.2012, 12:42   #8
Mr_freeman
Форумчанин
 
Аватар для Mr_freeman
 
Регистрация: 17.01.2010
Сообщений: 277
По умолчанию

Цитата:
Сообщение от Mr_freeman Посмотреть сообщение
Сейчас попробую с вашим кодом проверить.
Теперь все работает. Огромное спасибо.
Mr_freeman вне форума Ответить с цитированием
Старый 17.02.2012, 02:28   #9
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Цитата:
Сообщение от Mr_freeman Посмотреть сообщение
Какие ошибки вы исправляли?

И еще вопрос, какой вы использовали php скрипт? Тот, что я выкладывал?

Сейчас попробую с вашим кодом проверить.
Ошибки - не было части <body>, не было закрытого </script>, перед вызовом функции создания объекта зачем-то стоял new и ещё несколько в таком роде. Пхп ваш использовал
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
XmlHttpRequest "Failed to load resource" в chrome Hippos JavaScript, Ajax 11 05.02.2013 05:23
Возврат результата XMLHttpRequest kos1nus JavaScript, Ajax 11 20.08.2011 19:16
[Ajax]XMLHttpRequest проблема с получением ответа Geniy00 JavaScript, Ajax 1 27.05.2011 23:53
Ajax. Видимость XMLHttpRequest. Викдон JavaScript, Ajax 0 03.08.2010 18:09
Вопрос по XMLHttpRequest NeveX JavaScript, Ajax 7 25.09.2009 09:34