我正在使用反應本機提取API從https://api.github.com/users/{username}
獲取JSON數據,但請求失敗並顯示以下錯誤消息。React本機提取請求失敗
"TypeError: Network request failed {stack: (...), message: 'Network request failed'}".
相信對於HTTPS,有時你NSURLAuthenticationChallenge。我不知道如何實現這一點。任何人都有這個想法嗎?
我正在使用反應本機提取API從https://api.github.com/users/{username}
獲取JSON數據,但請求失敗並顯示以下錯誤消息。React本機提取請求失敗
"TypeError: Network request failed {stack: (...), message: 'Network request failed'}".
相信對於HTTPS,有時你NSURLAuthenticationChallenge。我不知道如何實現這一點。任何人都有這個想法嗎?
你試過XMLHttpRequest
?
作爲證明in the doc,https
由XMLHttpRequest
支持:
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();
在您發佈的同一文檔中,它表明您可以使用Fetch進行https操作 –
你能提供你的fetch
代碼段?
一般來說,fetch
聲明是這樣寫的:
fetch(requestURL)
.then((response) => response.json())
.then((data) => {
this.setState({data: data});
})
.catch((error) => console.log(error))
.done();
捕獲錯誤將允許該程序沒有崩潰進行。
在我的情況下,問題不在代碼中。沒有網絡時我開始模擬器。在登錄到仿真器上的無線網絡點網絡後,仍然無法正常工作。我重新啓動了模擬器 - 一切正常。
所以:
連接到網絡。
重新啓動模擬器。
如果沒有幫助,請檢查您的代碼。
我也有這個問題React Native Fetch Request Fails
非常頻繁。
在我的情況下,來自API調用的響應大約爲5kb,因此我從API響應中刪除了不必要的數據,並將結果大小減小到1kb左右,並開始工作。
因此,嘗試限制您從API請求的數據。
如果沒有代碼片段很難說,但你可以嘗試在你正在使用的url的末尾添加'/'。也使用'#{用戶名}'完成插值。 – GoldenBeet
您能否提供一些最低限度的代碼來重現此錯誤?獲得它的一種方法是嘗試「獲取」一個無效的URL,但沒有辦法說明是什麼導致了你的情況,而不顯示一些代碼。 –