如何通过javascript从html页面中的特定github txt文件中获取数据

如何通过javascript从html页面中的特定github txt文件中获取数据,javascript,promise,async-await,cors,fetch,Javascript,Promise,Async Await,Cors,Fetch,我想获取此url的数据 我试图使用fetch api来获取数据,但我得到了cors错误 这就是我要做的 async function showmodal1() { console.log("hello") const data = await fetch('https://github.com/ProjectSakura/OTA/blob/10/changelog/changelog_beryllium.txt');

我想获取此url的数据

我试图使用fetch api来获取数据,但我得到了cors错误

这就是我要做的

async function showmodal1() {
    console.log("hello")
    const data = await 
                 fetch('https://github.com/ProjectSakura/OTA/blob/10/changelog/changelog_beryllium.txt');
    console.log(data)
}
showmodal1();
有没有办法获取github txt文件的数据 我试图在网上找到这个,但什么也找不到 提前谢谢你的帮助

编辑:

这是错误日志

编辑2:


以下是我在编写问题之前发现的链接

您的代码是从http://127.0.0.1:5500'这与'http://github.com'并被阻止(在现代浏览器上默认启用)。您需要将特定的头添加到开发服务器

Access Control Allow Origin标头中的*允许与任何(通配符)域通信

样本:

  "Access-Control-Allow-Origin": "*",
  "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, PATCH, OPTIONS",
  "Access-Control-Allow-Headers": "X-Requested-With, Content-Type, Authorization"
还有一些浏览器扩展可以“解锁”CORS,但会被认为是不利的

编辑:

也获取源代码。通过单击您在请求中尝试访问的URL上的“原始”按钮,可以访问该URL

编辑2: 下面是可以工作的代码

const url1 = 'https://raw.githubusercontent.com/ProjectSakura/OTA/10/changelog/changelog_beryllium.txt'
const response = await fetch(url1);
const data = await response.text();
console.log(data);

在客户端,您将无法获取GitHub文本文件,因为浏览器强制执行跨浏览器源策略作为安全措施。您的源本身必须设置相关的CORS头以允许这样做。不过,您可以从服务器端执行此操作。使用express创建如下所示的节点服务器,然后尝试从您自己的服务器访问数据

server.js

const express=require('express');
const cors=需要(“cors”);
const fetch=require('node-fetch');
常量app=express();
应用程序使用(cors());
app.get('/txt_response',异步(req,res)=>{
const resp=等待取数('https://github.com/ProjectSakura/OTA/blob/10/changelog/changelog_beryllium.txt');
const textResp=wait resp.text();
res.json(textResp);
});
app.listen('9000');
现在您可以使用
http://localhost:9000/txt_response
作为端点查询客户端代码中的数据。

查看并向下滚动到“提供请求选项”:


我很确定提出问题的人没有权限修改GitHub服务器上的设置。原始url返回access Control Allow Origin:*我实际上知道cors,我只是想从GitHub公共存储库获取数据,我现在将编辑问题,我不确定你想说什么@Fullslack.dev,但我想你得到了我的答案问题您知道一种方法吗好的,让我尝试从原始源获取数据:D@MaxGDNIf您有一个类似服务器的节点,您可以通过
node fetch
axios
获取节点的信息。您还可以使用
木偶演员
,然后阅读它。我想不出一种在浏览器中绕过CORS的方法。我一直在寻找一些在客户端工作的方法,但我理解这一点,并在代码中实现了它,它起了作用。感谢您的帮助,但我们需要使用的是原始文件,而不是下面由@maxgd所述的github repo链接。这将不起作用。我尝试了这一点,我们必须使用@MaxGDNI的原始文件如下所述,我不知道问题中有什么错误,应该得到-1分:(如果你想要我的投票,请展示研究成果。编辑过的先生,我相对较新,所以我不知道如何提出好的问题,谢谢你指导我@AaronBell
const url1 = 'https://raw.githubusercontent.com/ProjectSakura/OTA/10/changelog/changelog_beryllium.txt'
const response = await fetch(url1);
const data = await response.text();
console.log(data);
fetch(
      'https://github.com/ProjectSakura/OTA/blob/10/changelog/changelog_beryllium.txt', 
      {
        mode: 'no-cors'
      }
)