如何让JS识别API请求无效(即使fetch返回ok状态)
解决方案:检查API响应体而非仅依赖
res.ok 你遇到的情况是API设计的常见逻辑:当请求格式合法(比如参数结构正确、API密钥有效)但请求的资源不存在时,API会返回200 OK状态码,同时在响应体中返回空结果或状态标识,而非直接返回4xx错误。这种情况下不需要更换API,只需调整代码逻辑,解析响应体并判断是否包含有效数据。
具体操作步骤:
- 调用
fetch后,必须解析响应体(比如用res.json()),查看API返回的实际数据结构 - 根据Polygon API的返回规则,当输入无效ticker时,返回的
results字段会是空数组,你可以通过这个判断请求是否成功获取到有效数据
修改后的代码示例:
const resStock = await fetch( `https://api.polygon.io/v3/reference/tickers?ticker=AAsdfsPL&active=true&apiKey=key` ); const stockData = await resStock.json(); // 检查是否有有效结果 if (!stockData.results || stockData.results.length === 0) { // 处理无效股票代码的场景,比如抛出错误或提示用户 console.error("Invalid ticker symbol - no matching data found"); // 这里可以添加自定义的错误处理逻辑 } else { // 正常处理有效数据 console.log("Valid stock data:", stockData.results); }
额外提示:可以查阅Polygon API的官方文档,确认无匹配资源时的返回格式,比如是否有status字段或其他标识,以便更精准地判断请求结果。
内容的提问来源于stack exchange,提问作者Brenden Baio
相关产品推荐
相关产品推荐

