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

时间:2017-05-30 17:48:11

标签: javascript reactjs response fetch fetch-api

我在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,我真的不确定发生了什么。我以前使用过相同的方法而没有遇到这个问题,因此我不确定它是否因第三方数据源或其他原因而有所不同。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我建议您遵循问题下方的评论:

sideshowbarker说

  

如果您使用模式:“ no-cors”的原因是因为服务器未在其响应中发送Access-Control-Allow-Origin响应标头,则模式:“ no-cors”不是解决该问题的方法。正确修复此错误的唯一方法是配置服务器以发送Access-Control-Allow-Origin响应标头,或者更改前端JavaScript代码以使您通过代理进行请求。 follow this link...