我想通过ajax请求访问gitlab上我的存储库中的原始文件。但是,它不起作用,我想知道我是否必须相应地设置我的项目或其他东西。显然我的项目是public
。这是我收到的错误消息:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
这意味着它就在他们的最后。
答案 0 :(得分:0)
要理解Access-Control-Allow-Origin
标题,我强烈推荐How does Access-Control-Allow-Origin header work?
当站点A尝试从站点B获取内容时,站点B可以发送一个 Access-Control-Allow-Origin响应头告诉浏览器 某些来源可访问此页面的内容。 (原产地 是一个域,加上一个方案和端口号。)默认情况下,站点B的 任何其他来源都无法访问这些页面;使用 Access-Control-Allow-Origin标题为跨源打开了一扇门 特定请求来源的访问。
如果您的GitLab托管在gitlab.com上,我看不到将您的域添加到响应标头的方法。
最简单的解决方案是在对应用程序的请求中将XMLHttpRequests包装到GitLab中 - 在后端,您只需获取并返回数据。例如,您不会向https://gitlab.com/pdaw/test/raw/master/README.md
发送XML请求,而是向https://my.app.com/fetch-file?file=pdaw/test/raw/master/README.md
发送XML请求。在fetch-file
操作的后端,您将从https://gitlab.com/pdaw/test/raw/master/README.md