首页 > 解决方案 > RapidApi 看不到密钥头有什么问题?

问题描述

所以我在我的 Angular Node.js 应用程序中有这个方法:

async translateWord(word: string) {
const key = '*I put it here*';

const translation = await axios({
  "method": "POST",
  "url": "https://google-translate1.p.rapidapi.com/language/translate/v2",
  "headers": {
    "content-type": "application/octet-stream",
    "x-rapidapi-host": "google-translate1.p.rapidapi.com",
    "x-rapidapi-key": key,
    "useQueryString":true
  },
  "data": {
    "source": "en",
    "q": word,
    "target": "ru"
  }
});

console.log(translation.data);
}

调用方法的结果是

发布https://google-translate1.p.rapidapi.com/language/translate/v2 502(错误网关)

当我在 Chrome 开发工具窗口中右键单击失败的请求并在新选项卡中打开它时,我收到以下消息:

{"message":"缺少 RapidAPI 应用程序密钥。请访问 https://docs.rapidapi.com/docs/keys 了解如何获取您的 API 应用程序密钥。"}

奇怪的是,我的标题中实际上有密钥:证明

当我通过 RapidApi 接口执行相同的代码片段时,我也得到了正确的翻译。

标签: node.jsangularapiaxiostranslation

解决方案


RapidAPI 支持通过查询参数传递 API 密钥。您可以通过在链接中包含以下语法来做到这一点:

https://example.p.rapidapi.com/?rapidapi-key=***************************

但是,请记住,您的 RapidAPI 密钥会在您的整个帐户中使用。如果链接可公开访问,请小心暴露您的密钥。


推荐阅读