2016-04-01 4 views
2

Обновлено:Javascript JSON разбора из URL

Я пытаюсь разобрать ответ от URL, но понятия не имею, если я делаю это правильно.

URL-адрес возвращает следующий JSON:

{"make":"truck","date":"23 July 2009","colour":"pink"}; 

Если я заменить вар newtext = xhttp.responseText; с

var newtext = '{"make": "truck", "date": "23 July 2009", "color": "pink"}';

он работает, но как только я возвращаюсь к тексту xhttp.responseText, он просто показывает пустую страницу.

код я использую:

<!DOCTYPE html> 
<html> 

<body> 
    <p id="demo"></p> 
    <script> 
    xhttp.open("GET", "https://url.com", false); 
    xhttp.send(); 

    var newtext = xhttp.responseText; 

    var obj = JSON.parse(newtext); 

    document.getElementById("demo").innerHTML = 
    obj.make + "<br>" + 
    obj.colour + "<br>" + 
    obj.date; 
    </script> 
</body> 

</html> 
+1

Что происходит, когда вы запускаете его? – jonhopkins

+0

ваш ответ уже JSON, почему вы снова разбираете его? просто используйте его без разбора. –

+0

@SindhooOad, потому что JSON извлекается из 'xhttp.responseText', я уверен, что это строка, которая находится в формате JSON, и ее нужно разобрать – jonhopkins

ответ

0

Вы не определили свою переменную xhttp, но вы пытаетесь вызвать функции на нем. Это приводит к ошибке Uncaught ReferenceError и приводит к тому, что остальная часть кода не запускается. Чтобы создать объект XMLHttpRequest, как вы, кажется, пытаетесь это сделать, поместите это в начало вашего скрипта.

var xhttp; 
if (window.XMLHttpRequest) { 
    xhttp = new XMLHttpRequest(); 
} else { 
    // code for IE6, IE5 
    xhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
} 

// the object actually exists here now so the functions can be called on it 
xhttp.open("GET", "https://url.com", false); 
xhttp.send(); 
... 

Затем вы можете продолжить с остальной частью кода, уверены, что ваш xhttp объект был инициализирован.

Я обычно не рекомендую использовать w3schools, но приведенный выше код был скопирован из http://www.w3schools.com/ajax/ajax_xmlhttprequest_create.asp

+0

Приятный, спасибо, я отдам его – NewToCode

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