Tableau Enture Report с просьбой входа в систему вместо непосредственной загрузки отчета в браузере SafariJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Tableau Enture Report с просьбой входа в систему вместо непосредственной загрузки отчета в браузере Safari

Сообщение Anonymous »

Я работаю над проектом в ReactJS, в который я встраивал отчеты Tableau. Я использовал подключенные приложения Direct Trust с JWT, поэтому отчеты не требуют SIGNIN перед загрузкой, и они загружаются без сигнала в Chrome и Firefox, однако они требуют знаки в облаке Tableau в браузере Safari. < /P>
Это ошибка, которую я получаю в консольном. (tableau.embedding.3.12.0-pre.25.min.js.map, строка 0)

[ошибка] Не удалось загрузить ресурс: сервер ответил состоянием 401 () (просмотр, строка 0) < /p>
import TableauViz from "@/components/TableauViz/TableauViz";
import { useEffect, useState } from "react";
import { useSelector } from "react-redux";

const Report = () => {
const [device, setDevice] = useState("desktop");

const { selectedReport = null, reportToken = "" } = useSelector(
(state) => state.reports
);

const { isLargeScreenSidebarOpen } = useSelector((state) => state.ui);

useEffect(() => {
const handleResize = () => {
if (window.innerWidth < 768) {
setDevice("mobile");
} else {
setDevice("desktop");
}
};

// Initial check
handleResize();

// Add event listener for window resize
window.addEventListener("resize", handleResize);

// Clean up the event listener on component unmount
return () => {
window.removeEventListener("resize", handleResize);
};
}, []);

if (!selectedReport) return ;

const options = {
toolbar: "bottom",
"hide-tabs": true,
device,
"hide-edit-button": true,
width: "100%",
};

return (

);
};

export default Report;
< /code>
import React, { useEffect, useRef, useState } from "react";
import { TableauEventType } from "https://public.tableau.com/javascripts/ ... est.min.js";
import { ErrorMessage } from "@/components/ErrorMessage/ErrorMessage";

const TableauViz = ({ src, options, token }) => {
const vizContainer = useRef(null);
const [error, setError] = useState("");

function handleError(err) {
try {
if (err.detail) {
const details = JSON.parse(err.detail.message);
console.error(details);
if (details.statusCode === 401) {
setError("You are not authorized to view this report.");
emptyVizContainer();
} else {
setError("Something went wrong.");
emptyVizContainer();
}
}
} catch (error) {
console.error("handleError", error);
setError("Something went wrong.");
emptyVizContainer();
}
}

function emptyVizContainer() {
if (vizContainer.current) {
vizContainer.current.innerHTML = "";
}
}

useEffect(() => {
// Initialize the Tableau Viz web component
const vizElement = document.createElement("tableau-viz");
vizElement.id = "tableauViz";
vizElement.src = src;
vizElement.token = token;

// Add options as attributes
for (const [key, value] of Object.entries(options)) {
vizElement.setAttribute(key, value);
}

// Append the viz element to the container
if (vizContainer.current) {
vizContainer.current.innerHTML = "";
vizContainer.current.appendChild(vizElement);
}

// Add event listeners
vizElement.addEventListener(TableauEventType.VizLoadError, handleError);

// Cleanup event listeners on unmount
return () => {
vizElement.removeEventListener(
TableauEventType.VizLoadError,
handleError
);
};
}, [src, options]);

if (error)
return (



);

return ;
};

export default TableauViz;
< /code>
In the official documentation they say it is because safari blocks third party cookies the report is asking for signin but they don't provide a solution. I tried block third party cookies in chrome but still the report were loading fine.

Подробнее здесь: https://stackoverflow.com/questions/795 ... -report-in
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»