问题在于,curl
回复正确的回复
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://localhost:8080/rbuilder
HTTP/1.1 200 OK
Content-Length: 1067
{"rScriptName":"CollegePlan"," .............}
然而,使用ReactJS,浏览器又回来了。
componentWillMount() {
fetch('http://localhost:8080/rbuilder', {
method: 'GET',
mode: 'no-cors',
processData: false,
contentType: "application/json",
cache: false,
accept: "application/json"
}).then((res) => {
console.log('GET response', res);
}, (err) => {
console.log(err);
});
}
但是,我注意到,在“网络”标签中,rbuilder
在时间轴中出现两次,第二次出现正确的“回复”。
我的抓取有什么问题?
答案 0 :(得分:1)
你错过了一步。
为了获得您的回复正文,您必须根据需要使用其中一种方法
response.text() - 将响应文本生成为String
response.json() - 产生JSON.parse(responseText)的结果
response.blob() - 产生一个Blob
response.arrayBuffer() - 产生一个ArrayBuffer
response.formData() - 生成可转发给其他请求的FormData
让我们说你想要一个json,你应该做
componentWillMount() {
fetch('http://localhost:8080/rbuilder', {
method: 'GET',
mode: 'no-cors',
processData: false,
contentType: "application/json",
cache: false,
accept: "application/json"
})
.then((res) => {
return res.json();
})
.then((body) => {
console.log(body);
})
.catch((error) => {
//whatever
});
}