Fusion Tables - Вызов API из браузера с использованием JavaScript - uncaught typeError

Я пытаюсь получить некоторые данные из таблицы Google Fusion.

Я использовал документацию Google для создания файла JSON с помощью вызова API Fusion Tbales следующим образом: https://www.googleapis.com/fusiontables/v1/query?sql=SELECT%20*% 20FROM% yyyyyy & key = xxxxxxxxx "

Теперь я хочу включить этот вызов в веб-страницу и отобразить результаты на той же странице.

Я следовал инструкциям на этой странице, где приведен пример кода (вызов API из браузера с использованием JavaScript): https://developers.google.com/fusiontables/docs/v1/getting_started

Я разместил код на своем сайте и заменил вызов скрипта на тот, что приведен в начале этого поста.

Когда я просматриваю страницу, ничего не отображается на странице, и я получаю сообщение об ошибке в консоли Google: Uncaught TypeError: Невозможно прочитать свойство 'length' undefined

Кто-нибудь знает лучший пример или учебник по этому, где работает пример кода?

ИЛИ ЖЕ

Кто-нибудь знает, почему этот скрипт не работает?

Код:

<html>
  <head>
    <title>Google Fusion Tables API Example</title>
  </head>
  <body>
    <div id="content"></div>
    <script>
    function handler(response) {
      for (var i = 0; i < response.items.length; i++) {
        var item = response.items[i];
        // Either show the body or the automatic columns of the template
        if (item.body) {
          document.getElementById("content").innerHTML += "<br>" + item.body;
        } else {
          for (var j = 0; j < item.automaticColumnNames.length; j++) {
            document.getElementById("content").innerHTML += "<br>" + item.automaticColumnNames[j];
          }
        }
      }
    }
    </script>
 <script src="https://www.googleapis.com/fusiontables/v1/query?sql=SELECT%20*%20FROM%20xxxxq5TFqB4oM-HCQBkRqzOM6uC2qAIJDk91Q&keyXXXXXXXX"></script>


  </body>
</html>

1 ответ

Решение

Когда я запускаю ваш код, я получаю ошибку JavaScript в Chrome:

Refused to execute script from 'https://www.googleapis.com/fusiontables/v1/query?sql=SELECT%20*%20FROM%20XXXXXXX&key=XXXXXXX' because its MIME type ('application/json') is not executable, and strict MIME type checking is enabled. 

В вашем запросе отсутствует параметр "callback=handler" (из приведенного вами примера).

Как только я исправлю, что ваша процедура синтаксического анализа не верна для возвращенных данных, в ответе отсутствует свойство items. Это работает для меня:

<html>
  <head>
    <title>Google Fusion Tables API Example</title>
  </head>
  <body>
    <div id="content"></div>
    <script>
    function handler(response) {
      var contentStr = "<table>";
      for (var i = 0; i < response.rows.length; i++) {
        var item = response.rows[i];
        contentStr += "<tr>";
        for (var j = 0; j < item.length; j++) {
          contentStr += "<td>" + item[j]+"</td>";
        }
        contentStr += "</tr>";
      }
      contentStr += "</table>";
      document.getElementById("content").innerHTML = contentStr;
    }
    </script>
 <script src="https://www.googleapis.com/fusiontables/v1/query?sql=SELECT%20*%20FROM%20XXXXX=XXXXXX&callback=handler"></script>
  </body>
</html>

рабочий пример

Другие вопросы по тегам