无法在iFrame中加载数据

时间:2018-06-12 11:09:40

标签: html reactjs sockets websocket

我尝试获取旧网站的网址,但发生了错误:

Fetch API cannot load http://xyz.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://abc' is therefore not allowed access.
If an opaque response serves your needs, set the request's mode to 'no-cors'
to fetch the resource with CORS disabled.

我的代码看起来像这样

render(){
    return (
       <div>
          <iframe src="http://localhost:8080/.../StockExchangeWidget.html" />
       </div>
    )
}

当我在iFrame之外加载它时,一切正常,但是当我尝试使用iFrame加载它时,我会遇到很多错误,但仅限于图表的数据,因为你可以看到框架和按钮已加载。

enter image description here

当我尝试在网址内部加载HTML页面时,我也收到了WebSocket错误 WebSocket连接到&#39; wss://widgetdata.tradingview.com/socket.io/websocket?from = widgetembed%2F&amp; date = 2018_06_09-17_59&#39;失败:WebSocket握手期间出错:意外的响应代码:403

2 个答案:

答案 0 :(得分:1)

托管iframe的域名需要修改其CORS Policy,以允许您域中的请求到达其网站。如果该页面上没有CORS标头,则您的浏览器将不会呈现iframe的内容(出于安全原因)。

答案 1 :(得分:0)

是的,答案是在PANAYIOTIS指向我的CORS Policy中。

我的代码现在看起来像这样

render(){
    return (
        <div>    
            <iframe
                sandbox="allow-same-origin"
                title="FirstIFrame"
                src="http://www.tricky.web.siteHome.do"
            />    
        </div>
    )
}

我在iframe中添加了 sandbox =&#34; allow-same-origin&#34; ,以及所有&#39; cookies&#39;并且&#39;无法上传&#39;问题解决了。

了解更多信息阅读this post这对于此类问题非常有用: