2012-06-10 2 views
1

Я использую следующую функцию, которая не работало нормально до сих пор, но я часто получаю следующее сообщение об ошибке:Ajax с JavaScript

[Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIXMLHttpRequest.send]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: http://www.myURL.info/manage/sharedLibrary.js :: getFile :: line 406" data: no]

ПРИМЕЧАНИЯ ошибка линии указана ниже непосредственно после комментария в коде блок.

ДОПОЛНИТЕЛЬНЫЕ ИССЛЕДОВАНИЯ это, по-видимому, распространенная проблема с firefox. У кого-нибудь есть более чистый способ сделать это? 1

функция не работала отлично до сих пор и выглядит следующим образом:

function getFile(url){ 
    var AJAX = null; 
    try{ 
     if(window.XMLHttpRequest){ 
      AJAX = new XMLHttpRequest(); 
     }else{ 
      AJAX = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     if(AJAX){ 
      AJAX.open("GET", url, false); 
      //The line below is line 406 in the error code. 
      AJAX.send(null); 
      return AJAX.responseText; 
     }else{ 
      return false; 
     } 
    }catch(err){ 
     var a = prompt("", err); 
    } 
} 

Я использую firefow в браузере. если я разбиваю Firefox и перезапускаю ошибку, уже не присутствует, она снова появляется после некоторого времени. Вариант использования не совсем точен.

Есть ли какая-то переменная, которую я должен сбросить с каждым запросом?

Если я попытаюсь поймать, ошибка, похоже, нарушит некоторые базовые функции, которые не сбрасываются, пока браузер не перезагрузится.

Любая помощь будет оценена!

+0

Это, очевидно, линия, которая вызывает ошибку (406): 'AJAX.send (нуль);'. Если ошибка дает номер строки, обычно рекомендуется указывать, какую строку и/или что находится на этой строке в вопросе. –

+0

@JaredFarrish это в комментариях к коду выше. это AJAX.send (null). –

+0

Ох. Возможно, сделать это более очевидным, как в тексте, прежде чем блок кода скажет * См. Прокомментированную строку для соответствующей строки кода *? я просто не видел этого, и я несколько раз искал. –

ответ

0

Попробуйте

AJAX.onreadystatechange = function(){ var text = AJAX.responseText}; 

перед тем

AJAX.send(null);