2016-06-09 69 views
0

這裏是問題,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

你試過 '//本地主機:8080/rbuilder',而不是完整的URL。 –

+0

@MariaSaavedra 我收到回覆...... {「rScriptName」:「CollegePlan」,「.............} – newprint

+1

當你說它變空時,你的意思是「res」是未定義的? – QoP

回答

1

您錯過了一個步驟。

爲了得到你的身體的反應,你將不得不使用這些方法之一取決於你想要什麼

response.text() - 產生響應文本字符串作爲

響應上傳.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

+0

我添加了'console.log('GET response',res);'不幸的是,我仍然在Chrome中獲得'body:null'控制檯 – newprint

+0

你是否在我的答案中檢查了代碼?res不應該有一個body。 – QoP