Как использовать API Tableau Javascript для встраивания информационных панелей в веб-страницу для панелей, размещенных в Tableau Online? - PullRequest
0 голосов
/ 24 сентября 2019

Я пытаюсь воссоздать пример, приведенный здесь Tableau , с панелью мониторинга, размещенной в Tableau Online.В отдельной статье из Таблицы говорится об изменении URL-адреса JS API в зависимости от того, где размещена панель мониторинга , и я постарался следовать этому.

Даже если в результате встраивание требуетлогин будет отображаться, я ожидаю, что логин будет отображаться во встроенном выводе / iframe на моей веб-странице.Пожалуйста, обратитесь к включенному коду.Вместо этого я получаю сообщение об ошибке CORS :

Отказано в отображении 'https://10ay.online.tableau.com/site/jpl/views/JPLDashboard_V05_JUE/Awareness?:iid=2&:size=800,700&:embed=y&:showVizHome=n&:bootstrapWhenNotified=y&:tabs=n&:apiID=host0#navType=1&navSrc=Parse' в кадре, поскольку для параметра' X-Frame-Options 'установлено значение'sameorigin '.

Правильный ли я подход?Если встраивание информационных панелей Tableau Online возможно с помощью их JS API, как избежать ошибки CORS?

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8" />
    <title>JPL Dashboard</title>
    <script type="text/javascript" src="https://online.tableau.com/javascripts/api/tableau-2.min.js"></script>
        <script type="text/javascript">
          function initViz() {
            var containerDiv = document.getElementById("vizContainer"),
              //url = "http://public.tableau.com/views/RegionalSampleWorkbook/Storms",
              url = "https://10ay.online.tableau.com/site/jpl/views/JPLDashboard_V05_JUE/Awareness?:iid=2",
              options = {
                hideTabs: true,
                onFirstInteractive: function() {
                  console.log("Run this code when the viz has finished loading.");
                }
              };

            var viz = new tableau.Viz(containerDiv, url, options);
          }
        </script>
</head>
<body>
    <div id="vizContainer" style="width:800px; height:700px;"></div>
    <script type="text/javascript">
        (function () {
            window.onload = function () {
                initViz();
            };
        })();
    </script>
</body>
</html>

1 Ответ

1 голос
/ 24 сентября 2019

Убедитесь, что URL-адрес, используемый для встраивания представления, указан в параметре «Поделиться» в Tableau Online:

  1. В Tableau Online перейдите к представлению, в котором обнаружена проблема.
  2. Нажмите кнопку «Поделиться».
  3. Скопируйте ссылку URL в разделе ссылок.
  4. Настройте код встраивания для использования этого URL-адреса, а не URL-адреса Tableau Online в адресной строке браузера.

Если это правильно, попробуйте добавить: <meta http-equiv="X-Frame-Options" content="allow"> в заголовок HTML

Надеюсь, это полезно, Гиги

...