请求发送成功,但使用时返回空承诺'fetch'



我使用React和fetch发送这样的请求:

fetch(`http://www.bilibili.com/index/catalogy/1-3day.json`,{
        mode: "no-cors"
    }).then(r => r.json()).then(r => {
        console.log(r);
    }).catch(err => {console.log(err);})

响应就在网络选项卡

但是会抛出错误

SyntaxError: Unexpected end of input
at SyntaxError (native)
at http://127.0.0.1:8888/js/video.bundle.js:30174:15

当我试图记录承诺时,它似乎是一个奇怪的对象:

Response {type: "opaque", url: "", status: 0, ok: false, statusText: ""…}

这是图片

有人能帮忙吗?我对这个

很困惑

不能向不支持跨域资源共享(CORS)的外部服务器发出请求。

通过在请求上设置no-cors模式,您显式地告诉服务器在无法访问其内容的情况下发出副作用请求。这类似于当您从第三方站点在HTML中放置<img>标记并且无法访问其内容时-它对调用代码是不透明的。

你需要在服务器端下载json,然后从你自己的服务器上提供它,以避免这个问题。

最新更新