JavaScript天气API Key问题:Live Server中出现401未授权错误
问题分析与解决
你的代码存在核心错误:拼接API请求URL时,用单引号包裹了包含${apiKey}的字符串,导致模板字符串的变量插值未生效,实际发送的请求里appid参数值是${apiKey}而非真实密钥,这就是401未授权错误的直接原因。
修正后的代码
const apiKey = "5926da84fa5ddbb8fb12992a5d7b7585"; const apiUrl = "https://api.openweathermap.org/data/2.5/weather?units=metric&q=chennai"; async function checkWeather() { // 改用反引号实现模板字符串插值,或用普通字符串拼接 const response = await fetch(`${apiUrl}&appid=${apiKey}`); // 也可以写成:apiUrl + '&appid=' + apiKey var data = await response.json(); console.log(data); } checkWeather();
额外排查点
- 确认Live Server运行页面和直接浏览器打开的页面处于同一环境,避免密钥的域名绑定限制(OpenWeatherMap一般支持跨域请求,但需确认后台设置)
- 查看浏览器控制台的请求详情,确认
appid参数已正确携带真实密钥 - 若问题仍存在,登录OpenWeatherMap后台检查密钥状态,确认是否被限制或需要配置额外权限
内容的提问来源于stack exchange,提问作者Vasanth
相关产品推荐
相关产品推荐

