首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在javascript上设置DeepL API中的源?

如何在javascript上设置DeepL API中的源?
EN

Stack Overflow用户
提问于 2021-09-17 03:56:38
回答 3查看 729关注 0票数 2

我还应该试试什么?

我目前正在axios中向DeepL API发送一个请求,但由于CORS问题,我得到了一个403个响应。

并尝试使用querystring设置选项,如这里所示,但它没有工作。https://github.com/funkyremi/deepl/blob/master/index.ts还使用上述URL处的库返回403。

此外,在DeepL的帐户设置中没有原始设置。

我尝试使用‘Content’:‘application/x form-urlencoded’来表示axios头:{},我还尝试为params:{}设置选项,而不使用querystring,但它们没有工作。

代码语言:javascript
复制
import axios from 'axios'
import querystring from 'querystring';

export const translateDeepL = async() => {
  const options = {
      "auth_key": process.env.DEEPL_AUTH_KEY,
      "text": 'everyday is birthday.',
      "target_lang": 'JA',
  };
  const url = "https://api-free.deepl.com/v2/translate";
  const data = await axios.post(url, querystring.stringify(options)).then(r => r);
  console.log(data);
}
代码语言:javascript
复制
VM3451:1 POST https://api-free.deepl.com/v2/translate 403

请求使用带有ngrok的https也不起作用。

我也尝试了"https://api-free.deepl.com/v2/usage“的GET方法,但是得到了相同的结果。

因为我使用的是免费计划,所以它肯定是api-fre.depl.com。

顺便说一下,上面的代码是作为React中的一个组件执行的。

EN

回答 3

Stack Overflow用户

发布于 2022-09-14 15:54:58

我遇到了同样的问题,却找不到答案。这个API似乎不想通过浏览器和我交谈。

我的“解决方案”是在节点中设置一个API代理。

它工作得很好,从后端+现在我可以添加一些速率限制等。

编码园上的C.J可以比我任何时候都更好地解释这个问题。

票数 1
EN

Stack Overflow用户

发布于 2022-09-28 17:15:11

DeepL API不支持直接从基于浏览器的应用程序中使用。API密钥也不应该公开共享,应该始终保密。

最好的方法是为API调用使用后端代理。

票数 1
EN

Stack Overflow用户

发布于 2022-02-15 12:31:12

您可能因为从http (您的本地主机)向https发送请求而被阻止,请尝试使用代理axios配置,如

代码语言:javascript
复制
const response = await axios
.get("https://api-free.deepl.com/v2/translate", {
  params: {
    auth_key: x,
    text: y,
    target_lang: z
  },
  proxy: {
    host: "localhost",
    port: 8080
  }
});

返回响应;};

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69217582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档