2015-04-27 86 views
10

我正在使用反應本機提取API從https://api.github.com/users/{username}獲取JSON數據,但請求失敗並顯示以下錯誤消息。React本機提取請求失敗

"TypeError: Network request failed {stack: (...), message: 'Network request failed'}".

相信對於HTTPS,有時你NSURLAuthenticationChallenge。我不知道如何實現這一點。任何人都有這個想法嗎?

+0

如果沒有代碼片段很難說,但你可以嘗試在你正在使用的url的末尾添加'/'。也使用'#{用戶名}'完成插值。 – GoldenBeet

+0

您能否提供一些最低限度的代碼來重現此錯誤?獲得它的一種方法是嘗試「獲取」一個無效的URL,但沒有辦法說明是什麼導致了你的情況,而不顯示一些代碼。 –

回答

-3

你試過XMLHttpRequest

作爲證明in the dochttpsXMLHttpRequest支持:

var request = new XMLHttpRequest(); 
request.onreadystatechange = (e) => { 
    if (request.readyState !== 4) { 
    return; 
    } 

    if (request.status === 200) { 
    console.log('success', request.responseText); 
    } else { 
    console.warn('error'); 
    } 
}; 

request.open('GET', 'https://mywebsite.com/endpoint.php'); 
request.send(); 
+0

在您發佈的同一文檔中,它表明您可以使用Fetch進行https操作 –

2

你能提供你的fetch代碼段?

一般來說,fetch聲明是這樣寫的:

fetch(requestURL) 
    .then((response) => response.json()) 
    .then((data) => { 
    this.setState({data: data}); 
    }) 
    .catch((error) => console.log(error)) 
    .done(); 

捕獲錯誤將允許該程序沒有崩潰進行。

0

在我的情況下,問題不在代碼中。沒有網絡時我開始模擬器。在登錄到仿真器上的無線網絡點網絡後,仍然無法正常工作。我重新啓動了模擬器 - 一切正常。

所以:

  1. 連接到網絡。

  2. 重新啓動模擬器。

如果沒有幫助,請檢查您的代碼。

0

我也有這個問題React Native Fetch Request Fails非常頻繁。

在我的情況下,來自API調用的響應大約爲5kb,因此我從API響應中刪除了不必要的數據,並將結果大小減小到1kb左右,並開始工作。

因此,嘗試限制您從API請求的數據。