簡體   English   中英

為什么在 Laravel 中獲取 JavaScript 總是返回空值?

[英]Why fetch JavaScript in Laravel always return empty value?

我正在刀片模板視圖中從系統本身獲取 API。 但我總是返回{}

fetch("http://mylaravelapp.com/api/list")
.then(response => {
     console.log(JSON.stringify(response));
});

I already set CORS header inside my API using this library, https://github.com/barryvdh/laravel-cors .

有幾個問題:

  1. 您沒有檢查 HTTP 請求是否成功。 很多人都會犯這個錯誤,這是fetch API 設計中的一個缺陷,更多信息請參見我的貧血小博客。 您需要檢查response.ok
  2. response是一個沒有自己的可枚舉屬性的 object,因此JSON.stringify將為它返回"{}" 要獲取響應,您必須通過響應對象的方法之一讀取響應正文,例如textjsonarrayBufferformDatablob

例如:

fetch("http://mylaravelapp.com/api/list")
.then(response => {
    if (!response.ok) {
        throw new Error("HTTP error " + response.status);
    }
    return response.text(); // or .json(), .arrayBuffer(), ...
})
.then(data => {
    console.log(JSON.stringify(data));
})
.catch(error => {
    console.error(error.message);
});

嘗試返回 JSON 數據並在您的 Fetch 請求中使用 JSON 數據類型

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM