2012-06-18 1 views
5

Я получаю эту ошибку как часть этой более крупной головоломки here.Объясните ошибку DOM 11 при инициализации XMLHttpRequest с помощью JSON-headers

var xhr = new XMLHttpRequest(); 
xhr.setRequestHeader('Content-Type', 'application/json'); 

//Error: INVALID_STATE_ERR: DOM Exception 11 

Для дальнейших исследований

  1. книга О'Рейли "Определенная Руководство по Javascript 6-е издание" на стр 491 в главе 18 "Scripted HTTP" обсудили XMLHttpRequest, пожалуйста, примечание что речь идет не только об HTTP или XML (исторические реликвии).

  2. запись DEV Mozilla, о XMLHttpRequest here

+0

возможно дубликат [INVALID_STATE_ERR: DOM Exception 11 (WebKit)] (http://stackoverflow.com/questions/3488698/invalid-state-err-dom- exception-11-webkit) –

+0

Вы пробовали искать переполнение стека для «DOM 11»? Там уже существует множество потоков, рассматривающих эту проблему. –

+3

@ ŠimeVidas: Это не очень хороший дубликат. INVALID_STATE_ERR/11 используется для * так много вещей * ... – Ryan

ответ

6

Вы должны open() в XMLHttpRequest, прежде чем вы можете установить заголовки запросов. Просто переместите эту строку после вызова open():

var xhr = new XMLHttpRequest(); 
xhr.open('POST', 'example.php', true); 
xhr.setRequestHeader('Content-Type', 'application/json'); 
+0

Предположим, что я просто запускаю свой код в консоли браузера, что должен быть '' example.php'' в этом случае? В Mozilla Dev-site есть некоторый монстр '' url + = ((/\?/).test(url)? "И": "?") + (Новая дата()). GetTime() "', но, вероятно, нет что-то здесь? (извините, это может быть вопрос свалить, все еще учиться/читать материал ...) – hhh

+1

@hhh: Какую бы страницу вы хотите запросить - но она должна быть в том же доменном имени, или вы получите исключение. – Ryan

+0

Есть одна проблема, нет страницы. Моя цель в другом вопросе заключается в том, чтобы добавить контент в db в адрес 'http: //127.0.0.1: 5984/test', к нему можно получить доступ к couchDB. – hhh