提取返回空响应,但“网络”选项卡显示数据

Tom*_*uer 3 javascript fetch-api

使用以下简单代码段:

fetch("https://www.youtube.com/feeds/videos.xml?channel_id=UCAL3JXZSzSm8AlZyD3nQdBA", { mode: "no-cors" })
  .then(r => {
    console.debug(r);
    r.text().then(t => console.debug(t)).catch(console.error);
  })
  .catch(console.error);
Run Code Online (Sandbox Code Playgroud)

我收到一个空响应(nullbody,empty urlstatus为零,okfalse),但是当我转到“网络”选项卡时,可以在其中的“响应”选项卡中看到数据。我希望fetch回应能给我同样的感觉。

是什么赋予了?我试过添加,credentials: "include"但是没有什么区别,也不应该,没有它就应该可以访问此资源。

Ste*_*par 5

我会回答,因为它帮助了我:)

该请求得以通过,因为控制CORS的是响应标头-因此您必须获得响应才能知道该站点是否启用了CORS。

您可以在控制台中看到响应正文,因为在控制台中看到响应正文没有安全性问题,因为您仍然可以直接打开页面。

它是RSS提要的事实是无关紧要的-youtube显然不希望浏览其他站点的浏览器直接访问其RSS资源。您需要在服务器上“代理”请求