为什么在 Laravel 中获取 JavaScript 总是返回空值?

我正在刀片模板视图中从系统本身获取 API。但我总是回来{}。


fetch("http://mylaravelapp.com/api/list")

.then(response => {

     console.log(JSON.stringify(response));

});

我已经使用这个库https://github.com/barryvdh/laravel-cors在我的 API 中设置了 CORS 标头。


DIEA
浏览 195回答 2
2回答

泛舟湖上清波郎朗

有几个问题:您没有检查 HTTP 请求是否成功。很多人都会犯这个错误,这是fetchAPI 设计中的一个缺陷,更多信息请参见我贫血的小博客。你需要检查response.ok。response是一个没有自己的可枚举属性的对象,所以JSON.stringify会返回"{}"它。要获取响应,您必须通过响应对象的方法之一读取响应正文,例如text、json、arrayBuffer、formData或blob。例如: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);});

慕丝7291255

尝试在 Fetch 请求中返回 JSON 数据并使用 JSON 数据类型
打开App,查看更多内容
随时随地看视频慕课网APP