为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
DIEA 2022-01-24 10:17:17
我正在刀片模板视图中从系统本身获取 API。但我总是回来{}。fetch("http://mylaravelapp.com/api/list").then(response => {     console.log(JSON.stringify(response));});我已经使用这个库https://github.com/barryvdh/laravel-cors在我的 API 中设置了 CORS 标头。
查看完整描述

2 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

有几个问题:

  1. 您没有检查 HTTP 请求是否成功。很多人都会犯这个错误,这是fetchAPI 设计中的一个缺陷,更多信息请参见我贫血的小博客。你需要检查response.ok

  2. response是一个没有自己的可枚举属性的对象,所以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);

});


查看完整回答
反对 回复 2022-01-24
?
慕丝7291255

TA贡献1859条经验 获得超6个赞

尝试在 Fetch 请求中返回 JSON 数据并使用 JSON 数据类型


查看完整回答
反对 回复 2022-01-24
  • 2 回答
  • 0 关注
  • 194 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信