OMDB API检索以数字开头的标题返回401错误,求排查方案
OMDB API数字开头标题检索401问题排查建议
问题现象
OMDB API整体运行正常,但检索数字开头的影片标题(如《3-10 to Yuma》《6 Underground》《1917》等)时始终返回401状态码;字母开头的标题检索则完全正常。本地JavaScript请求示例如下:
https://omdbapi.com/?s=6 Underground&y=2019&page=1&key=******** Host: omdbapi.com User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/118.0 Accept: */* Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate, br Origin: null DNT: 1 Connection: keep-alive Sec-Fetch-Dest: empty Sec-Fetch-Mode: cors Sec-Fetch-Site: cross-site GET: HTTP/2.0 401
技术排查建议
强制规范URL参数编码:JavaScript中直接拼接含空格、特殊字符的搜索词可能导致解析异常,务必用
encodeURIComponent()处理搜索关键词。示例代码:const searchTerm = '6 Underground'; const url = `https://omdbapi.com/?s=${encodeURIComponent(searchTerm)}&y=2019&page=1&key=你的密钥`;数字本身无需额外转义,但完整编码参数能确保服务器正确解析请求,避免因参数格式问题触发权限拦截。
验证浏览器直接访问结果:把请求URL复制到浏览器地址栏直接访问,若仍返回401,大概率是OMDB API服务器对数字开头标题的检索存在密钥权限限制,需查看API密钥的使用规则;若浏览器访问正常,则问题出在本地请求的编码或请求头配置。
排查请求头差异:对比字母开头和数字开头请求的所有头信息,确认除搜索参数外完全一致。另外,
Origin: null是本地文件直接发起请求的特征,部分API对这类跨域请求有特殊限制,可尝试用本地静态服务器(如http-server)运行代码,让请求携带合法Origin头后再测试。检查API密钥配额:部分免费/基础版API密钥有请求次数或检索类型限制,虽然字母开头正常,但不排除服务器对数字开头标题的检索单独计数,可查看OMDB账户后台的配额使用情况。
内容的提问来源于stack exchange,提问作者morongo
相关产品推荐
相关产品推荐

