当前位置: 首页 > 知识库问答 >
问题:

阻止具有原点“http://localhost:8084”的帧访问跨原点帧

黄昊
2023-03-14

我试图打印一个由jspdf生成并加载到iframe的pdf,但我收到了错误消息:

DOMException:阻止源为“http://localhost:8084”的帧访问跨源帧。

这是我的代码:

  <iframe id="pdf-prueba" name="pdf-box"></iframe>


function open(){
    var pdf = new jsPDF('p', 'mm', [55, 5]);
    var data = pdf.output('datauristring');
    $('#pdf-box').attr("src", data).load(function(){
        document.getElementById('pdf-box').contentWindow.print();
    });
}

共有1个答案

呼延卓
2023-03-14

DOMException:阻止了具有原点的帧“http://localhost:8084“访问交叉原点框架。”

此消息是有效的,因为当您使用pdf加载iframe时,您使用datauristring而不是blob设置src属性。

一个简单的解决方案基于:

    < li >从pdf创建blob(即:pdf.output('blob ')..) < li >将blob转换为URL(即:URL . createobjecturl(blobPDF))

使用您的方法违反了该策略,因为协议(http/data)不同:

  • 一个是 http://localhost:8084
  • iframe 是: data:application/pdf

另一个错误是:

document.getElementById('pdf-box')

您必须使用id而不是名称,因此请将其更改为:

document.getElementById('pdf-prueba')

以下更改的代码在Chrome中有效:

function open(){
  var pdf = new jsPDF('p', 'mm', [55, 5]);

  var blobPDF = pdf.output('blob');

  var blobUrl = URL.createObjectURL(blobPDF);

  $('#pdf-prueba').attr("src", blobUrl).load(function(e){
    document.getElementById('pdf-prueba').contentWindow.print();
  });
}
<iframe id="pdf-prueba" name="pdf-box"></iframe>
 类似资料:
  • 我知道有很多类似的问题,唯一的区别是我从同一个**域得到了两个页面。这可以在下面的例子中看到。 这不应该只在不同的域之间发生吗? ================================================================================== 当然,在我发布几秒钟后,我发现了问题。SCORM包有一个定位SCORM API的函数。它看起来像顶部和开

  • 安全错误:阻止源"http://www.app.teste.com"的帧访问跨源帧。 我知道有人发过同样的帖子。但我创造这个是因为我有一个特定的问题。 这个错误发生在第一次访问时,当我按f5重新加载页面时效果很好。

  • 我想允许用户输入他们的网址并在iframe中浏览。在他们点击确认按钮后,我将从iframe中获得网址浏览。 但我从iframe获取url后出错了 例外:com。谷歌。gwt。事件共享。雨伞异常:捕获异常:(SecurityError):阻止了具有原点的帧”http://localhost“从访问交叉原点帧。

  • 我在一个WordPress网站上工作,网站上安装了很多WordPress插件。 wordpress网站上安装的插件具有以下选项: 当我点击“视图细节”选项时,我得到了一个空白屏幕,如下所示,但是当我在一个新的窗口或选项卡上打开时,它会起作用。 在检查控制台,我得到以下错误(当点击查看详细信息未能在同一页面上打开): 问题陈述: 我想知道我需要在wordpress中修改哪个文件来解决这个错误。这个错

  • 所以我的问题是: 每当我尝试从我的网页(同一台机器,不同的端口)向我的HTTP服务器发出XMLHttpRequest时,我都会被此错误阻止: 为什么会发生这种情况? 示例客户端(浏览器): 示例服务器(NodeJS、HTTP库): 已解决,感谢Quentin的评论:D