Java 链接到数据url不';直到我在url栏中点击return,我才打开

Java 链接到数据url不';直到我在url栏中点击return,我才打开,java,browser,data-uri,Java,Browser,Data Uri,我有一块html,当有人在浏览器中单击某个链接(嵌入在来自后端的某些文本中)时,我想在另一个窗口中呈现它。因此,在Java后端,我对其进行base64编码,并将其放入发送到前端的文本中: String encoded = DatatypeConverter.printBase64Binary(resourceRecord.getHtml().getBytes()); a.attr("href", "data:text/html;base64," + enc

我有一块html,当有人在浏览器中单击某个链接(嵌入在来自后端的某些文本中)时,我想在另一个窗口中呈现它。因此,在Java后端,我对其进行base64编码,并将其放入发送到前端的文本中:

String encoded = DatatypeConverter.printBase64Binary(resourceRecord.getHtml().getBytes());
                    a.attr("href", "data:text/html;base64," + encoded)
                            .attr("target", "_blank")
                            .attr("rel", "nofollow");
当呈现文本时,我在web inspector中看到一个带蓝色下划线的链接:

到目前为止还不错。不幸的是,当我点击链接时,它只是打开了一个新的空白选项卡。在Firefox和Chrome中,如果我单击新选项卡中的地址栏,它会在地址栏中显示数据url,如果我单击return,则会呈现预期的html

如果没有“单击地址栏并点击返回”步骤,我如何使html实际呈现?或者甚至有可能吗


更新添加了一个内容安全策略,其中包含
导航到“self”https:http:data:
,但没有任何帮助。我还尝试了不使用base64编码,因为我读到一个网站说Chrome只对base64编码限制顶级数据URL,但这没有帮助,其他消息来源也谈到了对所有数据URL进行限制。我看到的每个解决方案都涉及打开一个窗口并对其进行写入,而不是使用
标记,因此我得出结论,这是不可能的。

在浏览器控制台中是否看到与
内容安全策略
标题相关的日志消息@dpr不在Chrome或Firefox上。@dpr,我收回。如果我删除
target=“\u blank”
,我会看到CSP错误:
不允许将顶部框架导航到数据URL:data:text/html;base64,PHA+TG9yZW0gaXB…
您必须允许从标头中的数据URI加载数据。。。看看有很多例子。将CSP从prod复制到dev中(因为dev没有),添加了
导航到'self'https:http:data:
,我仍然收到相同的错误。