Fetch返回空响应,但Network选项卡显示数据

时间:2016-11-09 22:08:17

标签: 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);

我收到空回复(null正文,空urlstatus为零,okfalse),但是当我转到网络选项卡,我可以在其中的响应选项卡中看到数据。我希望fetch回复给我同样的信息。

是什么给出的?我尝试添加credentials: "include",但它没有任何作用,不应该没有它,这个资源应该可以访问。

1 个答案:

答案 0 :(得分:4)

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

  

请求通过,因为它是控制CORS的响应头 - 所以你必须得到一个响应,知道是否为站点启用了CORS。

     

您可以在控制台中看到响应正文,因为在控制台中看到响应正文没有安全问题,因为您无论如何都可以直接打开页面。

     

这是一个RSS提要无关紧要的事实 - youtube显然没有   希望浏览其他网站的浏览器直接访问他们的网站   RSS资源。您需要在服务器上“代理”该请求