我正在尝试将 AWS Quicksight 仪表板嵌入到我们的应用程序中,但我在嵌入过程中遇到了一些问题。该 URL 已正确生成,但当我尝试嵌入它时出现权限被拒绝错误。
我可以直接在新选项卡中加载生成的 URL,但是当我尝试嵌入它时,我收到 401 错误。
我已在 Quicksight 控制台中将该域列入白名单,并且正在通过 HTTPS 访问该页面。完整的测试页面如下所示。
以下代码是我用来测试嵌入的代码。它取自亚马逊的一个例子。
<!DOCTYPE html>
<html>
<head>
<title>My Dashboard</title>
<script src="https://unpkg.com/amazon-quicksight-embedding-sdk/dist/quicksight-embedding-js-sdk.min.js" ></script>
<script type="text/javascript">
function embedDashboard() {
var containerDiv = document.getElementById("dashboardContainer");
var params = {
url: "<link that works in a standalone browser tab>",
container: containerDiv,
parameters: {
},
height: "700px",
width: "1000px"
};
var dashboard = QuickSightEmbedding.embedDashboard(params);
dashboard.on('error', function(err) {console.log('dashboard error:', err)});
dashboard.on('load', function() {});
}
</script>
</head>
<body onload="embedDashboard()">
<div id="dashboardContainer"></div>
</body>
</html>
亚马逊发送一个 302,然后是一个 401。这会导致一个框架显示错误消息“我们无法显示此页面(未授权)。
图像中的第一个请求从服务器获取一个新链接,随后的两个请求是框架尝试。
我希望如果我的授权有问题,那么在它自己的选项卡中加载链接将不起作用。我认为问题一定出在框架上,但不知道除了白名单之外还有哪些其他选项可以检查。
有谁知道我还能尝试什么?