获取请求成功完成,但响应对象为空

问题描述 投票:0回答:1

我在 React 组件的

componentDidMount()
方法中有一个获取请求:

const request = new Request(url, {
    mode: 'no-cors',
    method: 'get',
    headers: {
        Accept: 'application/json'
    }
});

fetch(request)
    .then(function(response) {  
        console.log('Response: ', response);

        return response.text();  
    })
    .then(function(data) {
        // _this.setState({ data: data });

        console.log('Success: ', data);
        console.log('Request succeeded with JSON response', data);
    }).catch(function(error) {
        console.log('Request failed', error);
    });

当组件加载时,我可以看到在控制台中发出请求并返回正确的数据;但是,我的 Response 对象始终为空:

Response { type: "opaque", url: "", redirected: false, status: 0, ok: false, statusText: "", headers: Headers, bodyUsed: false }

response.text()
返回null,我真的不确定发生了什么。我之前也用过同样的方法,没有出现过这个问题,所以不确定是不是因为第三方数据源或者什么原因导致的不同。

有什么想法吗?

javascript reactjs response fetch-api
1个回答
3
投票

我建议您关注问题下面的评论:

sideshowbarker 说

如果您使用 mode: 'no-cors' 的原因是服务器未在其响应中发送 Access-Control-Allow-Origin 响应标头,则 mode: 'no-cors' 不是解决问题的方法解决这个问题。正确修复此问题的唯一方法是将服务器配置为发送 Access-Control-Allow-Origin 响应标头,或者更改前端 JavaScript 代码以使您通过代理进行请求。 点击此链接...

© www.soinside.com 2019 - 2024. All rights reserved.