2010-12-14 2 views
0

Является ли эта ошибка нарушением моего кода? Я получаю его в readystate 1.Ошибка: INVALID_STATE_ERR: DOM Exception 11 ломает мой AJAX?

Соответствующий HTML код:

<input type="button" value="Log In" onclick="login()" class="submit" /> 

Соответствующие Javascript:

function login() { 
     var xmlhttp = new XMLHttpRequest(); 
     xmlhttp.onreadystatechange = function() { 
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
       document.getElementById("headSpan").innerHTML = xmlhttp.responseText; 
      } 
     } 
     xmlhttp.open("POST", "logIn.php", true); 
     xmlhttp.send("usr=bob"); 
    } 

login.php:

<?php 
echo $_POST['usr']; 
?> 

Затем xmlhttp.responseText является " ». Если он делает то, что, я думаю, должен быть, я бы получил «bob»;

Заранее спасибо.

EDIT: Эта ошибка определяется как «Если предпринимается попытка использовать объект, который не используется или больше не используется». Просто FYI.

+0

В какой строке соответствует ошибка? – Jonah

+0

Как бы я узнал? Я использую консоль Javascript Chrome только с точкой останова if (xmlhttp.readyState == 4 && xmlhttp.status == 200). – Bloodyaugust

+0

О, это не дает вам линию? Ну, это довольно простой скрипт; просто разместите точку останова на всех строках. – Jonah

ответ

0

Найдено решение:

var params = "usr=bob"; 
     xmlhttp.open("POST", "logIn.php", true); 
     xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
     xmlhttp.setRequestHeader("Content-length", params.length); 
     xmlhttp.setRequestHeader("Connection", "close"); 
     xmlhttp.send(params); 

Видимо заголовок запроса не автомагически работать на PHP всегда, как я предполагал (и не нашли никаких доказательств того, чтобы отговорить меня от этой веры). В любом случае, довольно простое решение, но тем не менее разочаровывающее. Просто для дополнительной информации: работает WAMP (не встроенная вещь, акроним). Apache 2.2, PHP 5.3.3.

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