0
我有一個React JS應用程序試圖登錄到基於令牌的API(我也在開發中,使用Laravel 5.5和Laravel Passport)。我試圖實現基本登錄(使用用戶名和密碼登錄,驗證後從服務器接收令牌,將該令牌用於將來的查詢)。React JS Fetch返回空響應,但郵遞員沒有
我使用獲取的代碼如下:
function loginApi(username, password) {
return fetch(loginUrl, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
grant_type: 'password',
client_id: clientId,
client_secret: clientSecret,
username: username,
password: password
})
}).then(handleApiErrors)
.then(response => response.json)
}
值得注意的是不完全完整,因爲我現在只是想確定我恢復的響應。
我已經解決了遇到的正常問題,比如CORS問題,但是現在遇到的問題是API的響應只是...空。即使在Chrome的開發人員工具的「網絡」標籤中,如果我直接檢查請求,響應也是空的。
然而,如果我做的確切相同查詢與郵差,結果正是我所期望的。
可能是什麼問題嗎?爲什麼完全相同的查詢會返回不同的結果?
D'oh!謝謝,就是這樣。然而我很好奇:爲什麼調用該函數會改變服務器的響應?對我公認的新到React的思想來說,服務器的響應應該是相同的,不管是不是?唯一的區別是應用程序如何理解它?爲什麼在網絡選項卡中查看響應是空的? – CGriffin
@PeregrineStudios你沒有改變服務器響應。請記住'fetch'現在是一個瀏覽器本地API。您可能正在考慮瀏覽器獲取並返回的AJAX調用,但是如何將其格式化爲您的業務。但通過Fetch,整個承諾鏈都是API調用的一部分。它正確地「調用」了調用(您的服務器日誌應該顯示該調用),但未在開發人員控制檯中顯示,因爲瀏覽器解釋了整個「fetch」調用,而不僅僅是線程請求。 –