首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iFrame没有显示网站(跨站点请求错误)

iFrame没有显示网站(跨站点请求错误)
EN

Stack Overflow用户
提问于 2020-10-01 15:31:50
回答 3查看 846关注 0票数 1

我一直在冒险,想在我的山洞里买一个运动手册仪表盘。主要目标是展示我更喜欢的体育书籍的线条。基于一些谷歌和挖掘所有API的成本。我决定在赛前使用游戏中心,无论如何,我都经常使用它。

所以他们为GameCenter嵌入了代码,我有一个相当基本的HTML页面正在运行,但是有些东西不太正确,它显示的都是不稳定的。我不知道是我的代码还是游戏前的问题。如有任何帮助或指导,将不胜感激。

链接到静态页面:https://dashboard.megustasports.com/Untitled-1.html

赛前游戏玩家:https://pregame.com/game-center

编辑

以下是Chrome控制台的错误

通过指定其SameSite属性来指示是否在跨站点请求中发送cookie,因为cookie的SameSite属性未设置或无效,因此默认为SameSite=Lax,从而阻止在跨站点请求中发送cookie。此行为防止用户数据意外泄漏到第三方和跨站点请求伪造。

通过更新cookie的属性来解决此问题:指定SameSite=None并在跨站点请求中发送cookie是否安全。这使得第三方可以使用.如果cookie不应在跨站点请求中发送,则指定SameSite=Strict或SameSite=Lax。

9 cookies名称域& Path .te.dpr pregame.com/ _ga .pregame.com/ _gid .pregame.com/ .te.w pregame.com/ Telligent.进化-UI pregame.com/ tz偏移pregame.com/ tzid pregame.com/ .te.dpr pregame.com/实用工具.te.w pregame.com/实用程序2请求pg.authentication.js pg.authentication.jsentication&user=extranet%5cAnonymous&site=website

下面是我目前使用的HTML:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Here the title</title>
    <style>
            *{
                margin: 0px;
            }
            iframe {
                display: block !important;
                width: 100%;
                height: 100vh;
            }
    </style>
</head>
<body>

 
    <script src="https://pregame.com/assets/scripts/tear/tear.js" data-type="generic" data-url="https://pregame.com/game-center?ts_i=game-center"></script>




</body>
</html>

从理论上讲,最终结果应该只包含上面链接的页面中的表,并且看起来类似于以下内容:

EN

回答 3

Stack Overflow用户

发布于 2020-10-10 17:02:01

与其使用iframe,不如尝试发出HTTP请求并将其存储在div中:

代码语言:javascript
复制
var cors_api_url = 'https://cors-anywhere.herokuapp.com/';

function doCORSRequest(options, printResult) {
  var x = new XMLHttpRequest();
  x.open(options.method, cors_api_url + options.url);
  x.onload = x.onerror = function() {
    printResult(
      (x.responseText || '')
    );
  };
  if (/^POST/i.test(options.method)) {
    x.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  }
  x.send(options.data);
}

doCORSRequest({
  method: 'GET',
  url: 'https://pregame.com/game-center/',
  data: ''
}, function printResult(result) {
  document.querySelector('.result').innerHTML = result;
});
代码语言:javascript
复制
<div class="result"></div>

票数 1
EN

Stack Overflow用户

发布于 2020-10-03 20:15:02

问题

CORS旨在防止恶意网站模仿合法网站。赛前游戏中心的CORS策略要求嵌入包含他们网站的iframe的网站位于同一个域上。要从您的域使用iframe,游戏中心的开发人员必须将您的域添加到他们的CORS策略中。

解决方案

考虑以编程方式浏览他们的网站并从中提取你需要的信息(刮擦),然后创建你自己的网站来显示这些信息。这是最迂回的方式,但如果没有API可用于访问所需的信息,则通常可以接受。通过调查,您甚至可能会遇到一个JSON格式的端点,它的前端用来检索您可以使用的要显示的信息(他们的私有API)。

备注

抓取和重新发布由赛前游戏中心产生的信息可能违反了他们的条款和条件。如果您在本地托管网站,或者远程支持身份验证,您可能会避免法律影响。

参考文献

CORS:https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

Web (Python )教程:https://realpython.com/beautiful-soup-web-scraper-python

Django (Python框架):https://www.djangoproject.com

票数 0
EN

Stack Overflow用户

发布于 2020-10-04 18:00:14

您不能使用iframe显示一些像Google这样的网站。

这是一个安全措施,以保护他们的网站和客户数据不受攻击。

如果你想获得网站的一些细节,你可以使用他们的API,如果他们提供。

这是最好的选择。

你可以根据你的需求在网络上搜索一堆API。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64158587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档