【问题标题】:How to set "Access-Control-Allow-Origin: *"?如何设置“访问控制允许来源:*”?
【发布时间】:2020-05-14 04:54:58
【问题描述】:

我有一个调用 JS 函数的简单 HTML:

<body>
    <h1 onclick="scrape()"> Scrape! </h1>
    ...
    <script src="main.js"></script>
</body>

还有这个 JS 脚本(main.js):

function scrape() {
    var xhttp = new XMLHttpRequest();
    xhttp.open("GET", "https://www.wikipedia.org/", true)
    xhttp.send();
}

当我运行 scrape() 函数时,由于同源策略,它会返回错误。

在阅读了关于 this problem 的 SO 帖子后,我很困惑......

我读到“Access-Control-Allow-Origin: *”,这应该让我的网站可以访问其他网站的数据,但我不明白如何使用它,请你帮我告诉我如何使我的功能正常工作?

【问题讨论】:

  • 这不是您需要实现的。这是在后端处理的,因此维基百科允许您从不同的来源访问它。您可以从无浏览器环境中访问它

标签: javascript html ajax xml http


【解决方案1】:

如何设置“Access-Control-Allow-Origin: *”?

如果要求允许来自不同来源(域、子域等)的访问,您或任何后端开发人员应在服务器端设置该标头。在这种情况下,出于安全原因,Wikipedia 的后端并未设置该标头。

【讨论】:

  • 好的,那我如何从其他网站抓取数据?
  • @Flavié 你不能,只有网站的后端可以允许你请求的来源。
  • 那么我没有办法访问其他网站的数据吗?我不知道,也许使用第三方程序?
  • 不使用 javascript。
  • @Flavié 就像我说的那样,后端必须设置该标头,如果没有,则不可能。除非您有权访问后端代码。
猜你喜欢
  • 1970-01-01
  • 2011-09-18
  • 1970-01-01
  • 2017-10-15
  • 1970-01-01
  • 2018-09-16
  • 1970-01-01
  • 2016-01-02
  • 2017-12-15
相关资源
最近更新 更多