【问题标题】:Access to XMLHttpRequest at firebase getting cors policy error在 firebase 访问 XMLHttpRequest 获取 cors 策略错误
【发布时间】:2021-08-23 16:47:20
【问题描述】:

我是新手,我正在尝试将图像打印到系统中生成的 pdf 中。

但是我收到了这个错误:

这是我的功能:

pdfGenerate = () =>{
    
     var doc=new jsPDF('landscape','px','a4','false');
     
     var base64Img='https://www.w3schools.com/css/img_5terre.jpg'
     doc.addImage(base64Img,'JPEG',65,20,500,400)
     doc.save('CQMS_IMAGES.pdf')
     console.log("Image:"+base64Img);
     
  }

这是我生成下载按钮的地方:

<Button style={{float: 'right'}} color="primary" size= "sm" onClick= 
              {this.pdfGenerate}>Download Images</Button>

我收到此错误。怎么解决?? 从源“http://localhost:3000”访问“https://www.w3schools.com/css/img_5terre.jpg”的 XMLHttpRequest 已被 CORS 策略阻止:没有“Access-Control-Allow-Origin”标头存在于请求的资源上。

【问题讨论】:

    标签: reactjs image-processing cors jspdf


    【解决方案1】:

    这不是您的代码错误。 w3schools.com 的服务器告诉您的浏览器,只有在 url 栏中存在相同的 URL 时才能显示响应。哪个不是。您的网站在 localhost 上运行。

    为防止这种情况发生,您可以下载 no-cors 插件。 CorsE(对于 Firefox)或在未启用 CORS-Policy 的情况下启动 Chrome https://alfilatov.com/posts/run-chrome-without-cors/

    【讨论】:

    • 嗨,我认为这是正确的并且正在显示。我只是不能要求用户从他的窗口禁用 cors 是否有一些我可以编写的代码来实现这一点?
    • 不,这会违反浏览器安全准则。我真的不明白您要构建的内容,但是...您为什么不在自己的服务器上托管要打印的图像?同域CORS不会有问题。即使不是同一个域,只要能写出返回请求的headers,就可以让它工作。
    • 当你说写返回请求的标头时。什么意思?
    • 如果您打开您的开发工具并转到网络选项卡,您将看到每个请求都有一个请求标头和一个响应标头。响应头由服务器设置。如果您运行自己的服务器,则可以自己设置此响应标头。如果你运行一个 apache 服务器,你会像这样启用 CORS:ubiq.co/tech-blog/enable-cors-apache-web-server
    猜你喜欢
    • 2019-12-18
    • 2021-10-20
    • 2021-10-11
    • 2020-05-05
    • 2021-10-05
    • 2019-04-28
    • 2019-09-23
    • 1970-01-01
    相关资源
    最近更新 更多