调用fetch访问GitHub API时遇getaddrinfo ENOTFOUND问题求助
问题描述
我正在遵循Lucia的SvelteKit GitHub OAuth教程,代码如下:
tokens = await github.validateAuthorizationCode(code); const githubUserResponse = await fetch('https://www.api.github.com/user', { headers: { Authorization: `Bearer ${tokens.accessToken()}` } });
我可以正常执行nslookup www.api.github.com,但执行nslookup www.api.github.com/user时会报错:
UnKnown can't find www.api.github.com/user: Non-existent domain
我在Windows 11中尝试在hosts文件添加127.0.0.1 localhost,但没有效果。请问有什么解决建议?
解决建议
- 纠正nslookup的使用方式:
nslookup是用来查询纯域名对应IP的工具,只能输入域名(比如www.api.github.com),不能带路径(/user)。你把www.api.github.com/user当作域名解析,系统自然找不到对应记录,这是工具使用逻辑错误,不是网络或代码问题。 - 排查API请求问题:
- 先确认
tokens.accessToken()是否返回了有效令牌,打印出来检查格式是否符合要求。 - 可以直接在浏览器或Postman中用这个令牌请求
https://api.github.com/user(GitHub官方API域名不带www,带www也会被重定向),验证令牌有效性和网络连通性。 - 检查是否有代理、防火墙拦截了请求,尝试关闭相关工具后再测试。
- 先确认
- hosts修改无效的原因:你添加的
127.0.0.1 localhost和当前问题完全无关,localhost是本地回环地址,和GitHub域名解析没有关联,不需要修改hosts文件。
内容的提问来源于stack exchange,提问作者petercli
相关产品推荐
相关产品推荐

