我正在刀片模板视图中从系统本身获取 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个赞
有几个问题:
您没有检查 HTTP 请求是否成功。很多人都会犯这个错误,这是
fetch
API 设计中的一个缺陷,更多信息请参见我贫血的小博客。你需要检查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);
});
- 2 回答
- 0 关注
- 194 浏览
添加回答
举报
0/150
提交
取消