使用Redux Toolkit Query调用RapidAPI返回401未授权错误求助
问题根因
你的x-rapidapi-key和x-rapidapi-host两个请求头的取值填写颠倒,RapidAPI无法校验通过你的身份信息,因此返回401未授权错误。
RapidAPI请求头的正确取值规则:
x-rapidapi-host对应你要调用的目标接口域名,此处为coinranking1.p.rapidapi.comx-rapidapi-key对应你在RapidAPI平台获取的专属调用密钥,此处为935af67341msh072d3f07b71a1f8p1cb0b5jsn44961d90a001
修正后代码
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'; const cryptoApiHeaders = { 'x-rapidapi-host': 'coinranking1.p.rapidapi.com', 'x-rapidapi-key': '935af67341msh072d3f07b71a1f8p1cb0b5jsn44961d90a001', }; const baseUrl = 'https://coinranking1.p.rapidapi.com'; const createRequest = (url) => ({ url, headers: cryptoApiHeaders }); export const cryptoApi = createApi({ reducerPath: 'cryptoApi', baseQuery: fetchBaseQuery({ baseUrl }), endpoints: (builder) => ({ getCryptos: builder.query({ query: () => createRequest('/coins'), }), }), }); export const { useGetCryptosQuery } = cryptoApi;
其他可能的排查点
如果修正后仍出现401错误,可依次检查:
- 确认你已在RapidAPI平台订阅了CoinRanking对应的接口套餐,免费套餐也需要手动完成订阅才能正常调用
- 确认密钥复制完整,没有多余的空格、换行或者遗漏字符
- 确认当前调用的接口路径、请求方法和官方文档要求一致
内容的提问来源于stack exchange,提问作者Dev AD
相关产品推荐
相关产品推荐

