Я пытаюсь использовать данные Elasticsearch для создания таблицы с Google Charts. Я следовал этому решению: Заполните диаграмму Google данными поиска из Elasticsearch
Но я не вижу отображаемых данных или графика. Я думаю, это потому, что я неправильно передаю данные. Может ли кто-нибудь сказать мне проблему следующего кода?
<html>
<head>
<script type = "text/javascript" src = "https://www.google.com/jsapi"></script>
<script type = "text/javascript" src = "http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js">
</script>
<script type = "text/javascript">
google.load('visualization', {'packages':['table']});
google.setOnLoadCallback(drawTable);
function drawTable() {
var json;
$.ajax({
url: 'http://localhost:9200/people/man/_search',
type: 'POST',
data :
JSON.stringify(
{
"query" : { "match_all" : {} }
}),
dataType : 'json',
async: false,
success: function(data){
json = data;
}
})
var jdata = {};
jdata.cols = [
{
"id": "",
"label": "name",
"type": "string"
},
{
"id": "",
"label": "country",
"type":"string"
}
];
jdata.rows = [
{
"c": [
{
"v": json.hits.hits[0]._source.name
},
{
"v": json.hits.hits[0]._source.country
}
]
}
];
var data = new google.visualization.DataTable(jdata);
var table = new google.visualization.Table(document.getElementById('table_div'));
table.draw(data, {showRowNumber: true, width: '100%', height: '100%'});
}
</script>
</head>
<body>
<div id = "table_div"> </div>
</body>
</html>
Я нахожу три проблемы, связанные с тем, что в этом коде ничего не отображается. Не большая ошибка, но хорошие детали, чтобы заметить.
Я нахожу одну из проблем: мне нужно добавить заголовок «Content-Type», «application/json». Я могу получить файл JSON в консоли, но на веб-сайте все еще нет данных или графика.