2010-07-20 2 views
0

responseText пуст в Firefox, но нормально в Internet Explorer. Я также регистрирую ответ, прежде чем возвращаться к клиенту, чтобы увидеть свой ответ там.prototype ajax statusText пуст в 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; 
    } 
} 
+0

посылающего запрос в асинхронные: ложном, работы, как пришла? – shay

ответ

1

В OnComplete переменную обратного вызова не определен таким образом, это вызывает проблему:

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

или

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

Edit: Вот полный код у меня есть. Он работает абсолютно нормально на FF 3.5.10 .. хм не последнее, но должно быть одинаковым. Я могу подтвердить Аякс синхронный из порядка выходные 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; 
    } 
} 
+0

спасибо, но все еще на синхронизированных сообщениях я получаю то же самое – shay

+0

также не моя страница перезагружается после того, как асинхронный запрос ajax завершен – shay

+0

Я не могу понять, что вы пытаетесь сделать ... поставьте нам больше кода или объясните лучше –

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