根据你提供的代码,你遇到了CORS(跨域资源共享)问题。这是由于浏览器的安全策略导致的。为了解决这个问题,你可以在你的服务器端设置相应的响应头,允许来自指定域名(https://ai.3dlingyu.com)的请求。你可以在服务器端的响应中添加一个"Access-Control-Allow-Origin"头部。示例如下:

# 在服务器端的响应中添加HTTP头部
response.headers.add('Access-Control-Allow-Origin', 'https://ai.3dlingyu.com')

如果你无法修改服务器端的代码,你可以通过使用代理服务器来解决CORS问题。将你的API请求发送到代理服务器,然后由代理服务器发送请求并将响应返回给你的页面。这样,你的页面就可以绕过浏览器的安全策略。

以下是一个使用代理服务器的示例代码:

// 代理服务器地址
const proxyUrl = 'https://cors-anywhere.herokuapp.com/';

function handleSend(inputValue) {
  // ... 其他代码
  
  let url = `https://genshinvoice.top/api?speaker=丹恒&text=${content}&format=wav&length=1&noise=0.5&noisew=0.9&sdp_ratio=0.2`;
  url = proxyUrl + url; // 在API链接前添加代理服务器地址
  
  let audioXhr = new XMLHttpRequest();
  audioXhr.open('GET', url);
  audioXhr.responseType = 'blob';
  audioXhr.onload = function () {
    var audioPlayer = document.getElementById('audioPlayer');
    audioPlayer.src = URL.createObjectURL(audioXhr.response);
  };
  audioXhr.send();
  
  // ... 其他代码
}

在上述代码中,我使用了一个名为"CORS Anywhere"的公共代理服务器(https://cors-anywhere.herokuapp.com/)。你可以将你的API请求链接添加到代理服务器地址前面,从而绕过CORS限制。

希望这些代码和解释对你有帮助!如果你还有其他问题,请随时提问。

如何把httpsgenshinvoicetopapispeaker=丹恒&text=$content&format=wav&length=1&noise=05&noisew=09&sdp_ratio=02的链接在本页面播放请示例完整代码为什么我无法获取到已经生成的api链接到本地?但是我缺可以远程打开已经生成的链接要如何修改我的代码?为什么一定要使用代理服务器生成?链接已确定在远程服务器的api请

原文地址: https://www.cveoy.top/t/topic/i2JV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录