прототип ajax statusText пуст в Internet Explorer - PullRequest
0 голосов
/ 20 июля 2010

* * * * * responseText пусто в Firefox, но нормально в Internet Explorer. Я также регистрирую ответ, прежде чем вернуться к клиенту, чтобы увидеть его там.

Это мой запрос, я добавил setTimeout, но это тоже не помогает.

var ajaxUrl = "./ajaxHandlers/ajax-handler.php";

var myAjax = new Ajax.Request(
  ajaxUrl,
  {
    method: 'post', 
    parameters: params, 
    onComplete: function(response)
    { 
      setTimeout(handleResponse(response,callback) ,5000);
    } 
 });



 function handleResponse(response,callback)
 {
  alert(response.responseText);

  try
  {
     eval("var r = " + response.responseText);
  }
  catch (e)
  {
     alert("EXCEPTION = " + e.constructor);

     showError("error evaluating response : Response text:<br/>" + response.responseText);
     var r = new Object();
     r.message = 'Error evaluating response';
     r.status = 'error';
     if (typeof callback == 'function') callback(r);
     return;
  }
}

1 Ответ

1 голос
/ 20 июля 2010

В onComplete ваша переменная обратного вызова не определена, поэтому это вызывает вашу проблему:

onComplete: function(response)
{
      handleResponse(response);
} 

или

onComplete: function(response, callback)
{
      handleResponse(response, callback);
} 

Редактировать: Вот полный код, который у меня есть.Это работает абсолютно нормально на FF 3.5.10 .. хм не последний, но должен быть таким же.Я могу подтвердить, что ajax является синхронным из-за порядка выходных операторов console.info:

var ajaxUrl = "./ajaxHandlers/ajax-handler.php";
console.info('1');

var myAjax = new Ajax.Request(
  ajaxUrl,
  {
    method: 'post',
    asynchronous: false, 
    parameters: {}, 
    onComplete: function(response, callback)
    {
      handleResponse(response,callback);
    } 
   }
 );

console.info('2');

 function handleResponse(response, callback)
 {
 console.info(response.responseText);

  try
  {
     eval("var r = " + response.responseText);
  }
  catch (e)
  {
     alert("EXCEPTION = " + e.constructor);

     showError("error evaluating response : Response text:<br/>" + response.responseText);
     var r = new Object();
     r.message = 'Error evaluating response';
     r.status = 'error';
     if (typeof callback == 'function') callback(r);
     return;
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...