var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
GetNeededData(this);
}
};
xmlhttp.open("GET", "http://api.worldweatheronline.com/premium/v1/weather.ashx?key=293fde5989a044348ad180530172204&q=Kremenchuk&format=xml&num_of_days=5", true);
xmlhttp.send();
function GetNeededData(xml) {
var xmlDoc = xml.responseXML;
var temp_C = xmlDoc.getElementsByTagName("temp_C");
document.write(temp_C[0].textContent )
var temp_F = xmlDoc.getElementsByTagName("temp_F");
document.write( temp_F[0].textContent)
var windspeedKmph = xmlDoc.getElementsByTagName("windspeedKmph");
document.write( windspeedKmph[0].textContent )
}
Немного модифицировал ваш код в сниппет, в котором видно, что после вызова open
значение this.readyState = 1
, а после send
значение this.readyState = 4
, но после вызова send
падает ошибка 'Access-Control-Allow-Origin'
(это логично и ожидаемо):
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
console.log(this.readyState);
console.log(this.status);
if (this.readyState == 4) {
GetNeededData(this);
}
};
xmlhttp.open("GET", "");
xmlhttp.send();
function GetNeededData(xml) {
document.write(1);
document.write(2);
document.write(3);
}
Увы, так как падает ошибка, связанная с отсутствием доступа 'Access-Control-Allow-Origin'
или со смешанным контентом - не могу полностью протестировать ваш код. Но все же, дам ответ, который поможет. Добавил два вывода в консоль:
console.log(this.readyState);
console.log(this.status);
Чтобы узнать, какой статус ответа на запрос и текущее состояние объекта XMLHttpRequest
. Про статусы и все его плюшки можно почитать тут:
С точки зрения кода - все в порядке. Но для уверенности нужно убедиться, что не падает ошибка Access-Control-Allow-Origin
, к примеру. К какому выводу прихожу, добавьте как и я вывод в консоль, убедитесь, что статус ответа на запрос и текущее состояние объекта XMLHttpRequest
соответствуют вашим ожиданиям:
this.readyState == 4 && this.status == 200
Убедитесь, что в переменных получены данные (можно также, через console.log
):
var temp_C = xmlDoc.getElementsByTagName("temp_C");
var temp_F = xmlDoc.getElementsByTagName("temp_F");
var windspeedKmph = xmlDoc.getElementsByTagName("windspeedKmph");
Также, убедитесь, что вам нужен метод document.write(), который работает только пока HTML-страница находится в процессе загрузки.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Суть задачи такова что в textarea вводятся ссылки, а функция должна вырезать из них "https://" и вернуть отсортированный список ссылокУдалить "https://"...
Подскажите как решить проблему выгрузки из IE версии 10+? Код здесь
Подскажите пожалуйста новичку как сохранять и читать данные в формате JSON, тк