2013-08-01 5 views
0

У меня есть код, обрабатывающий HTTP-запрос. Но я получаюJavascript: InvalidStateError: DOM Exception 11

Error: InvalidStateError:DOM Exception 11

ошибка.

if (window.XMLHttpRequest) { 
     req_settings = new XMLHttpRequest(); 
     req_settings.onreadystatechange = processChange; 
     req_settings.open("GET", url, true); 
     req_settings.send(); 
    } else if (window.ActiveXObject) { 
     req_settings = new ActiveXObject("Microsoft.XMLHTTP"); 
     if (req_settings) { 
      req_settings.onreadystatechange = processChange; 
      req_settings.open("GET", url, true); 
      req_settings.send(); 
     } 
    } 
    req_settings.onreadystatechange = processChange; 
    req_settings.send(); 

Просьба помочь.

ответ

0

Вы вызываете send() дважды, что является недопустимым. Ваш код должен быть

if (window.XMLHttpRequest) { 
    var req_settings = new XMLHttpRequest(); 
} else if (window.ActiveXObject) { 
    req_settings = new ActiveXObject("Microsoft.XMLHTTP"); 
} else 
    throw "environment does not support ajax"; 
req_settings.onreadystatechange = processChange; 
req_settings.open("GET", url, true); 
req_settings.send(); 
+0

Спасибо за ответ, я стараюсь это, но теперь код не возвращает никаких данных, он висит ... – Ianthe

+0

Но это другой вопрос. Вам нужно будет указать, какую услугу (url) вы используете, что делает 'processChange', и как вы испытываете« зависание ». Может быть, новый вопрос. – Bergi

+0

Спасибо за ответ. Я в конечном итоге реструктурировал весь код. – Ianthe

0

код не имеет смысла, вы бы призывающую

req_settings.onreadystatechange = processChange; 
req_settings.send(); 

дважды, делает это внутри если и за его пределами! Удалите изнутри. Также он должен использовать собственный объект. Используйте библиотеку!

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