#javascript #django #parsing #xmlhttprequest
Вопрос:
Я пытаюсь проанализировать json с помощью xhr. Я сделал файл xhr для двух страниц, и каждая страница берет разные данные из файла xhr. Если синтаксический анализатор не может найти правильный идентификатор в html-шаблоне, он не сможет обработать оставшуюся часть.
Вот js
const xhr = new XMLHttpRequest()
method = 'GET'
xhr.responseType = 'json'
function buildTable(data){
}
xhr.open(method, requestURL)
xhr.onload = function() {
if (xhr.status > 400){
console.error(xhr.error)
}else{
console.log(xhr.response)
document.getElementById('name').innerHTML = xhr.response.name
document.getElementById('status').innerHTML = xhr.response.status
....
buildTable(xhr.response.history)
document.getElementById('description').innerHTML = xhr.response.description
}
}
xhr.send()
а вот шаблон django
{% extends 'base_dashboard.html' %}
<div class="wrapper">
{% include 'sidebar.html' %}
<div id='name'></div>
<div class="" id="status">In Progress</div>
<div class="col-xs-12" id='description'></div>
</div>
{% load static %}
<script src="{% static '/js/xhr_dashboard.js' %}">
</script>
{% endblock content %}
Пример JSON
name: "myname"
description: "This is the test description"
status: "2"
Комментарии:
1. можете ли вы поделиться примером этого JSON? Вы также, кажется, не анализируете никакой JSON?
2. @evolutionxbox в любом случае речь идет не о разборе json. Вопрос больше касается присвоения js соответствующего идентификатора в html
3. Я думаю, что речь идет о синтаксическом анализе.
response.name
скорее всего, он будет неопределенным, еслиresponse
не будет проанализирован. Также пример JSON не является JSON, он больше похож на YAML.4. «речь идет не о разборе json» — Тогда почему заголовок именно об этом: «Javascript не может правильно разобрать json» ?
5. Для быстрого решения вам, вероятно, понадобится
const data = JSON.parse(xhr.responseText);
тогдаdocument.getElementById('name').innerHTML = data.name;
и так далее. В долгосрочной перспективе вы должны использоватьfetch()
.