【发布时间】:2020-09-18 15:55:38
【问题描述】:
所以我在我的 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);
}
调用方法的结果是
POST https://google-translate1.p.rapidapi.com/language/translate/v2 502(错误网关)
当我在 Chrome 开发工具窗口中右键单击失败的请求并在新选项卡中打开它时,我收到以下消息:
{"message":"缺少 RapidAPI 应用程序密钥。请访问 https://docs.rapidapi.com/docs/keys 了解如何获取您的 API 应用程序密钥。"}
奇怪的是,我的标题中实际上有密钥:proof
当我通过 RapidApi 接口执行相同的代码 sn-p 时,我也得到了正确的翻译。
【问题讨论】:
-
查看文档,标头
content-type似乎包含值application/x-www-form-urlencoded,并且您的请求中缺少标头“accept-encoding”:“application/gzip”。你能和他们再试一次吗? -
@MichaelD 感谢您的回答。我更改了它,但仍然有相同的错误+新错误:拒绝设置不安全的标头“accept-encoding”。
-
那我不太确定。
-
@MichaelD ok tnx 无论如何都需要你的帮助
标签: node.js angular api axios translation