使用这个简单的代码段:
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
正文,空url
,status
为零,ok
为false
),但是当我转到网络选项卡,我可以在其中的响应选项卡中看到数据。我希望fetch
回复给我同样的信息。
是什么给出的?我尝试添加credentials: "include"
,但它没有任何作用,不应该没有它,这个资源应该可以访问。
答案 0 :(得分:4)
我会回答,因为它帮助了我:)。
请求通过,因为它是控制CORS的响应头 - 所以你必须得到一个响应,知道是否为站点启用了CORS。
您可以在控制台中看到响应正文,因为在控制台中看到响应正文没有安全问题,因为您无论如何都可以直接打开页面。
这是一个RSS提要无关紧要的事实 - youtube显然没有 希望浏览其他网站的浏览器直接访问他们的网站 RSS资源。您需要在服务器上“代理”该请求