Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript API授权401问题(仅通过浏览器的JS)-如何修复?_Javascript_Fetch Api_Http Status Code 401_Yandex Api - Fatal编程技术网

Javascript API授权401问题(仅通过浏览器的JS)-如何修复?

Javascript API授权401问题(仅通过浏览器的JS)-如何修复?,javascript,fetch-api,http-status-code-401,yandex-api,Javascript,Fetch Api,Http Status Code 401,Yandex Api,我需要从Yandex SpeechKit.API获得(任何)OK响应。 我得到了API-KEY(有效)并成功地使用了它,并通过NodeJS甚至GitBash收到了响应(请参阅下面屏幕的链接)。 但浏览器显示401: API请求有以下规则:。 我的浏览器JS代码: 让api_key='*******c_Ujs9scAhJVVZOs2xjnbvevqj6OFFm'; 设params=newurlsearchparams(); 常量文本='Пццц!'; params.append('text',te

我需要从Yandex SpeechKit.API获得(任何)OK响应。 我得到了API-KEY(有效)并成功地使用了它,并通过NodeJS甚至GitBash收到了响应(请参阅下面屏幕的链接)。 但浏览器显示401: API请求有以下规则:。 我的浏览器JS代码:

让api_key='*******c_Ujs9scAhJVVZOs2xjnbvevqj6OFFm';
设params=newurlsearchparams();
常量文本='Пццц!';
params.append('text',text);
params.append('voice','jane');
参数追加('emotion','good');
params.append('lang','ru-ru');
参数append('speed','1.0');
params.append('format','oggopus');
const fetchButton=document.getElementById(“fetchButton”);
fetchButton.onclick=()=>{
取('https://tts.api.cloud.yandex.net/speech/v1/tts:synthesize', {
方法:“POST”,
正文:params,
模式:“无cors”,
标题:{
//“内容类型”:“应用程序/x-www-form-urlencoded”,
“授权”:“Api密钥”+Api_密钥,
},
})。然后((res)=>{
控制台日志(res);
}).catch((错误)=>{
console.error(`!!!+${err}+!!!!!!!!!`)
});
}
节点和Bash的代码示例如下:

你说过:

…这意味着“我正在发出一个跨源请求,但我没有做任何需要服务器向我授予CORS权限的事情,所以不要抛出错误,而是静默失败”

你还说,

设置此标头需要CORS的权限。由于您处于非cors模式,因此无法自动且静默地进行设置

由于您没有设置授权密钥,因此从服务器获得401未经授权的响应


你不能在这里使用无cors模式,即使你有评论说这是必需的


有一些你可能会觉得有用。请注意,由于您正在使用的服务需要API密钥并施加限制,因此它可能不是用于浏览器,您应该实现服务器端解决方案。

Hmm,似乎建议授权头应该启动
Bearer
非常感谢。您认为,如果我将我的NodeJs文件(正在成功使用)上传到Heroku(例如),并从浏览器请求它,它会工作吗?
mode: "no-cors",            //required
'Authorization': 'Api-Key ' + api_key,