Curl返回正确的响应,浏览器返回null

时间:2016-06-09 19:03:03

标签: javascript google-chrome reactjs

问题在于,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在时间轴中出现两次,第二次出现正确的“回复”。 我的抓取有什么问题?

1 个答案:

答案 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
    });
}

fetch documentation