【发布时间】:2021-05-03 13:31:59
【问题描述】:
我正在尝试使用随机用户 API 来获取一些数据,但看到“获取失败”错误。有人可以为我指出如何解决这个问题的正确方向吗? TIA :)
async function getUsers() {
let users = await fetch('https://randomuser.me/api/?results=2');
let data = await users.json();
}
await getUsers();
错误:
GET https://randomuser.me/api/?results=5 net::ERR_FAILED
Uncaught (in promise) TypeError: Failed to fetch
承诺:
Promise {<pending>}__proto__: Promise
[[PromiseState]]: "rejected"
[[PromiseResult]]: TypeError: Failed to fetch
更新:原来我是在一个新的标签页/空白页中测试这个,它没有显示完整的错误: “CORS 策略已阻止从源 'null' 获取 '...' 的访问权限:请求的资源上不存在 'Access-Control-Allow-Origin' 标头。如果不透明的响应满足您的需求,请设置请求模式为 'no-cors' 以获取禁用 CORS 的资源。” 我现在安装了一个 Chrome 扩展来解决这个问题,尽管我确信可能有更好/更永久的方法来解决这个问题,我可能会在改天尝试!
【问题讨论】:
-
getUsers() 是异步的,所以你应该用 await getUsers() 或 getUsers().then( () => ....) 来等待它......不知道这个是问题,但承诺必须解决。
-
尝试/捕获并打印出错误
-
我怀疑您的获取或获取 json 的位置出了点问题。我会按照上面的建议做,并将它包装在一个 try catch 中并打印出你的 fetch 的结果。
标签: javascript async-await fetch