У меня есть код, который идет как это:XMLHttpRequest статус всегда равен нулю, когда светлячок и хром
<script>
var xmlhttp = new XMLHttpRequest();
var url = "http://localhost:9080/MyRestService/viewitems";
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
doSomeFunction(xmlhttp.responseText);
}
}
xmlhttp.open("GET", url, true);
xmlhttp.send();
function doSomeFunction(response) {
var arr = JSON.parse(response);
var i;
var out = "<table>";
for(i = 0; i < arr.length; i++) {
out += "<tr><td>" +
arr[i].title +
"</td><td>" +
arr[i].singer +
"</td></tr>";
}
out += "</table>";
document.getElementById("id01").innerHTML = out;
}
</script>
прекрасно работает на IE, но не работает в Chrome и Firefox. В основном, что происходит, xmlhttp.status возвращается всегда в Firefox и Chrome. В IE он возвращает 200, что позволяет начать обработку.
Редакцией: добавить весь код HTML страницы
EDITED: Я решил эту проблему. Проблема возникла из-за междоменного скриптинга. Я добавил параметр контроля доступа заголовка ответа в мои полезные коды обслуживания, чтобы исправить проблему.
Где находится остальная часть кода, который фактически отправляет XMLHttpRequest? – jfriend00
не используют синхронизацию ajax, chrome и firefox имеют право не предоставлять вам статус для таких запросов. – dandavis
jfriend: Я добавил остальную часть кода –