Как перекинуть данные в HTML таблицу? Не могу перекинуть данные с тегов в таблицу(

214
26 апреля 2017, 11:47
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 )   
}
Answer 1

Немного модифицировал ваш код в сниппет, в котором видно, что после вызова 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. Про статусы и все его плюшки можно почитать тут:

  • XMLHttpRequest
  • XMLHttpRequest.onreadystatechange
  • XMLHttpRequest.readyState

С точки зрения кода - все в порядке. Но для уверенности нужно убедиться, что не падает ошибка 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-страница находится в процессе загрузки.

READ ALSO
Сортировка по алфавиту. Помогите

Сортировка по алфавиту. Помогите

Суть задачи такова что в textarea вводятся ссылки, а функция должна вырезать из них "https://" и вернуть отсортированный список ссылокУдалить "https://"...

305
JQuery export to excel IE не работает

JQuery export to excel IE не работает

Подскажите как решить проблему выгрузки из IE версии 10+? Код здесь

274
Как работать с JSON?

Как работать с JSON?

Подскажите пожалуйста новичку как сохранять и читать данные в формате JSON, тк

219