В 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;
}
}