在JavaScript获取API中实现curlpost请求

在JavaScript获取API中实现curlpost请求,javascript,http,curl,post,fetch,Javascript,Http,Curl,Post,Fetch,我试图在JS Fetch API中使用curl实现此post请求: curl --user apikey:{my_secret_apikey} --request POST --header "Content-Type: application/json" --data "{\"text\":[\"Hello\"],\"model_id\":\"en-es\"}" "

我试图在JS Fetch API中使用curl实现此post请求:

curl --user apikey:{my_secret_apikey} --request POST --header "Content-Type: application/json" --data "{\"text\":[\"Hello\"],\"model_id\":\"en-es\"}" "{my_secret_url}/v3/translate?version=2018-05-01"
我在实现API密钥时遇到问题

我试过了,但没用。我从服务器上得到一个401未经授权的错误

fetch(url{
方法:“张贴”,
标题:{'Content-Type':'application/json'},
用户:{
“apikey”:blabla_api_键
}
正文:{
“文本”:[术语],
“型号识别号”:“en hi”
}
}).然后(res…)。。。。。。。。
感谢您的帮助

编辑:如果您对如何使用其他HTTP库将post请求实现到JS中有任何其他建议,那也很有帮助

使用auth头编辑的代码:

let headers=new headers();
headers.append('Authorization','Basic'+btoa(“apikey”+:“+”my_api_key”);
headers.append('Content-Type','application/json');
获取(url{
方法:“张贴”,
标题:标题,
正文:{
“文本”:[“你好”],
“型号识别号”:“en es”
}
})。然后(结果=>{
控制台日志(结果);
解析(result.translations[0]。translation);
}).catch(err=>console.log(err));

这将导致400个错误的请求,即使curl请求工作正常。

希望我回答您的问题不会太晚。 我遇到了与您相同的问题,我的解决方案是将授权编码到base64中

我使用的是Node.js,所以我需要为编码过程使用缓冲区。 如果我正确理解您的问题,您必须执行以下操作:

let buffer = Buffer.from(apikey:{my_secret_apikey})
let base64data = buff.toString('base64')
然后,您的授权标头应设置为如下内容:

headers: {'Authorization': `Basic ${base64data}`}

这至少帮助我解决了我一直在努力解决的问题。希望它也能为您工作!

您不能只是将cURL参数名称转换为fetch选项中的键,这不是它的工作方式。fetch不知道如何处理
用户
。您需要创建此cURL参数产生的相应标头,然后在fetch调用中指定它,一个头。如果这是HTTP Basic Auth-@CBroe,我实现了身份验证头,它似乎起了作用,但现在我有一个400“坏请求”服务器出错不确定您为body指定的JS对象是否会自动转换为JSON,请尝试将其作为正确的JSON字符串提供。@CBroe谢谢您的评论,我该怎么做?