gpt4 book ai didi

ajax - Github API 和 Access-Control-Allow-Origin

转载 作者:行者123 更新时间:2023-12-04 14:15:06 24 4
gpt4 key购买 nike

这可能是一个简单的(系列)问题,但我无法理解它。

我正在尝试从我网站上托管的 Web 应用程序访问 github api。这是简而言之的代码:

<!DOCTYPE html>
<html>
<head>
<style>p { color:red; }</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function () {

$.ajax( {url :'https://api.github.com/repos/janesconference/kievIIPlugins/commits', dataType: "json", cache: false, success: function (data, textStatus, jqXHR)
{
var lastCommitSha = data[0].sha;
$("p").text("Last commit SHA: " + lastCommitSha);
}
});
});
</script>

</head>
<body>
<p>Ajax request not (yet) executed.</p>

</body>
</html>

如果我将浏览器指向上传的这个简单页面 on my dropbox account一切都好。
如果相反,我将浏览器指向上传的这个简单页面 on my site ,我得到了臭名昭著的 Access-Control-Allow-Origin异常(exception):
XMLHttpRequest cannot load https://api.github.com/repos/janesconference/kievIIPlugins/commits?_=1360060011783. Origin http://bitterspring.net is not allowed by Access-Control-Allow-Origin.

所以,问题:
  • 为什么它适用于 Dropbox?
  • 我知道使用 CORS 它甚至可以在网站上运行。这是放Access-Control-Allow-Origin: *.github.com的问题在我的 Apache 配置或类似的东西上。但是,正如引自 en.wiki,

  • However, this might not be appropriate for situations in which security is a concern


  • 有没有办法在不更改 Apache 配置的情况下做到这一点?可能,我无法访问我的托管站点的 Apache conf,而且总是存在安全问题。这样做的正确方法是什么?
  • 最佳答案

    为了让 CORS 为您的站点工作(例如 http://example.com),您必须通过在此处创建一个 GitHub OAuth 应用程序来启用它:https://github.com/settings/applications

    由于您使用 GitHub 应用程序来使 CORS 工作(而不是使用它来启用 OAuth 本身),因此您只需在“创建应用程序表单”的所有三个字段中输入您站点的 URL:

  • 姓名:http://example.com
  • 网址:http://example.com
  • 回调网址:http://example.com

  • 请注意,如果您打算使用 OAuth 功能,则需要以不同方式设置回调 URL。

    在此之后,您应该能够从您的站点向 GitHub API 发送 AJAX 请求 http://example.com .

    关于ajax - Github API 和 Access-Control-Allow-Origin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14705726/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com