2010-05-26 4 views
0

Я использую Ajax для отправки данных на сервер (PHP-код) и обновляю его. Я отправляю много данных, один за другим, но между пост Ajax терпит неудачу и не возвращаем в readyState до 4. код следующимПроблема с представлением Ajax?

function getHttpRequest() 
{ 
    var request=false; 
    if(window.XMLHttpRequest) 
    { 
     request=new XMLHttpRequest(); 
    } 
    else if(window.ActiveXObject) 
    { 
     try 
     { 
      request=new ActiveXObject("Msxml2.XMLHTTP"); 
     } 
     catch(e) 
     { 
      try 
      { 
       request=new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      catch(e) 
      { 
       request=false; 
      } 
     } 
    } 

    return request; 
} 

код начинается здесь ..

function updateAnswer(){ 
var request=getHttpRequest(); 
request.open('post','addAnswer.php'); 
request.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
request.send("answer="+ans); 

if(request.readyState == 4) 
{ 
    var response=request.responseText; 
    document.getElementById("display").innerHTML=response; 
} 
} 

Я называю эту функцию, чтобы обновить ответ в базе данных, но он не возвратит статус = 4 иногда ... пожалуйста, помогите

+0

Любые причины, по которым вы не используете одну из тысяч библиотек AJAX, которые доказали свою надежность? – RoToRa

+0

нет причины как таковой ... но это очень небольшое приложение, и я подумал ... я буду кодировать его по-классически ... –

ответ

0

должно быть innerHTML. updateAnswer вызывается каждый раз, когда readyState меняется с нуля на четыре. Четыре полностью загружены, в то время как те, которые меньше, имеют разные этапы загрузки.

+0

извините за это внутреннее внутреннее ...: D ... –

+0

следует использовать readstatechange событие и написать код в отдельной функции (при успехе) ?? –

+0

Да. Я не понимал, что вы не прикрепляли 'updateAnswer' к' onreadystatechange'. Сделайте это первым. –

0

Почему бы не облегчить жизнь и использовать фреймворк, как jQuery?

Кроме того, не можете ли вы опубликовать все данные за один раз, чтобы сохранить несколько обращений к серверу?

+0

Потому что использование библиотек для простых вещей, подобных этому, плохо. http://azabani.com/51 –

+0

да! Я согласен ... Библиотеки хорошо делать сложные вещи легко ... –

Смежные вопросы