Я схожу с ума с этим ...
Я создал веб-сервис RESTful.NET с C # и работает как автономный сервис. Когда я делаю XMLHttpRequest для извлечения данных JSON, все браузеры не работают, кроме IE, потому что флаг состояния экземпляра XMLHttpRequest всегда равен 0 - это должно быть 200, что происходит с IE.
Я уже прочитал, что 0 - это правильное значение для статической HTML-страницы, которой нет на веб-сервере. Итак, я установил Apache и поместил страницу там, но результат тот же (возможно, я неправильно интерпретировал предложение ...)
Я запустил Fiddler, и запросы всегда корректно извлекаются для любого браузера!
Вот код JavaScript, который я использую:
<script type="text/javascript">
var serviceURI = 'http://localhost:8889/WebService/client/25';
var xmlHttp = new XMLHttpRequest();
function clientHandler()
{
if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
{
var json = xmlHttp.responseText;
var client_id = document.getElementById('clientid');
var client_name = document.getElementById('clientname');
var client_address = document.getElementById('clientaddress');
var client_phone = document.getElementById('clientphone');
var client = eval('(' + xmlHttp.responseText + ')');
client_id.value = client.id;
client_name.value = client.name;
client_address.value = client.address;
client_phone.value = client.phoneNumber;
}
else
alert("Error:\nxmlHttp.responseText = " + xmlHttp.responseText + "\nstatus = " + xmlHttp.status);
}
function sendRequest()
{
if (xmlHttp)
{
xmlHttp.onreadystatechange = clientHandler;
xmlHttp.open('GET', serviceURI, true);
xmlHttp.setRequestHeader("Content-Type", "application/json; charset=utf-8");
xmlHttp.send(null);
}
else
alert('xmlHttp not defined!');
}
</script>
Я был бы очень рад, если бы кто-нибудь мог объяснить мне, что происходит; Я не нашел никакого прискорбного объяснения этому ...
Кроме того, лучше ли использовать для этой работы фреймворк, такой как jQuery?
Спасибо всем!
PS: Я консультировался с Джоном Фландерсом в RESTful.NET, но это мало помогает в решении этой проблемы ...: (
Редактировать: Я переместил ответ на этот вопрос в комментарий ниже!