Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.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
Node.js 如何修复被cors策略阻止的服务:否';访问控制允许原点';请求的资源上存在标头_Node.js_Text To Speech_Ibm Watson_Speech To Text - Fatal编程技术网

Node.js 如何修复被cors策略阻止的服务:否';访问控制允许原点';请求的资源上存在标头

Node.js 如何修复被cors策略阻止的服务:否';访问控制允许原点';请求的资源上存在标头,node.js,text-to-speech,ibm-watson,speech-to-text,Node.js,Text To Speech,Ibm Watson,Speech To Text,我正在尝试访问IBM Watson在我的NodeJs应用程序中提供的文本到语音服务,但我看到访问拒绝错误,因为该服务已被CORS策略阻止。通过在app.js中设置相关标题尝试了所有方法,但未能解决问题 每当我从NodeJS应用程序发送任何文本时,都会听到一段语音,说是相对响应。CORS错误只有在您试图从浏览器端javascript调用服务时才会发生。话虽如此,我的印象是,文本到语音是沃森确实支持CORS的服务之一 如果您从node.js应用程序的服务器端调用服务,那么它应该能够调用文本到语音的

我正在尝试访问IBM Watson在我的NodeJs应用程序中提供的文本到语音服务,但我看到访问拒绝错误,因为该服务已被CORS策略阻止。通过在app.js中设置相关标题尝试了所有方法,但未能解决问题


每当我从NodeJS应用程序发送任何文本时,都会听到一段语音,说是相对响应。

CORS错误只有在您试图从浏览器端javascript调用服务时才会发生。话虽如此,我的印象是,文本到语音是沃森确实支持CORS的服务之一

如果您从node.js应用程序的服务器端调用服务,那么它应该能够调用文本到语音的服务,而不受任何CORS限制

简而言之,如果您正确地调用了服务,那么您不应该看到任何CORS错误。这表明您没有正确调用服务。根据API文档-

您的代码应该如下所示:

var TextToSpeechV1=require('watson-developer-cloud/text-to-speechv1');
var fs=需要('fs');
var textToSpeech=新TextToSpeechV1({
iam_apikey:“{apikey}”,
url:“{url}”
});
var综合参数={
文字:“你好,世界”,
接受:“音频/wav”,
声音:“en-US_AllisonVoice”
};
//通过管道将合成文本传输到文件。
textToSpeech.synthesis(synthesizeParams).on('error',function(error){
console.log(错误);
}).pipe(fs.createWriteStream('hello_world.wav');

您的
url
端点应该类似于
https://stream.watsonplatform.net/text-to-speech/api

https://cloud.ibm.com/apidocs/text-to-speech?code=node
如果您不拥有此资源,并且所有者设置了限制性的
CORS
策略,则无法回答您的问题
app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "http://localhost:3000");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});