gpt4 book ai didi

JavaScript/jQuery 对第三方网站的引用在本地工作,而不是在 godaddy 运行站点上托管时工作(404 错误)

转载 作者:行者123 更新时间:2023-12-03 11:05:36 25 4
gpt4 key购买 nike

我正在开始开发一个涉及文本转语音的网络应用程序。使用从 YouTube 用户 Wes Bos 学到的技术,每次单击按钮时,我的代码都会通过 Google 的英文文本转语音 API 传递一个随机数(实际上将其粘贴到 URL 中并返回音频)。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>SujiQ Dev.0</title>


</head>

<body>

<!--text display/button -->

<p>generate random number</p>
<div id="output1"></div>
<button id="btn1" onclick="outText()">Random number</button>

<!--Hidden audio player -->

<audio src="" class="speech" hidden></audio>

<!--jQuery lib-->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

<!--read number out loud each button click -->

<script>

/*displays random number-of-the-moment; called on button click */

function outText() {


var randNum = Math.round(Math.exp(Math.random()*Math.log(10000000-0+1))); /*that's more like it*/

document.getElementById("output1").innerHTML = randNum;

/* play audio of random number */

$(function(){
$("button#btn1").on("click",function(e){
e.preventDefault();


var url = "https://translate.google.com/translate_tts?ie=UTF-8&q=" + randNum + "&tl=en";

$(".speech").attr("src", url).get(0).play();


});
});

}


</script>

</body>

</html>

当在我的浏览器本地运行时,此代码可以顺利执行,不会失败,但是当在我的 godaddy 提供的网站上托管完全相同的代码时,随机数生成器可以工作,但访问 google 的语音 API 几乎总是失败,同时返回网络控制台错误行:“GET https://translate.google.com/translate_tts?ie=UTF-8&q=152&tl=en 404(未找到)”。有趣的是,千载难逢,它会遍历并大声读出数字。

什么给了?我环顾四周,但我被难住了。

[[编辑]]当作为 Stack Overflow 代码片段运行时,该代码也无法大声读出数字

最佳答案

这是一个付费 API。您需要在 Google developer console 上设置您的项目然后您必须输入您的 CC 账单信息。完成后,在 API 选项卡下打开 API。

然后转到“凭据”。在右侧,单击“编辑设置”,在提供的框中,将 url 添加到将托管文件的域,例如“http://mywebsite.com ”。 不要将完整地址放入文件中,例如“http://mywebsite.com/mypage.html ”。保存您的更改。

至于为什么你的文件在本地运行时有效,下面是我的测试文件的地址:

本地文件,在mac上运行

文件:///Volumes/Macintosh%20HD/Users/DoDSoftware/Desktop/soundTest.html

本地文件,在PC上运行

文件:///C:/Users/Flights%20Trainer/Desktop/soundTest.html

托管文件

http://affordable-glass.com/test/soundTest.html

您看到本地文件前面的file:///了吗?我猜测 Google 已将 API 设置为允许来自 file:/// 的所有来源,因为他们知道这些将是本地文件而不是托管文件。这样,开发人员可以在与他们签订付款计划之前测试 API 并创建他们的应用程序。但是,他们当然会阻止来自不属于他们的付费计划的托管网站的任何请求。

enter image description here

关于JavaScript/jQuery 对第三方网站的引用在本地工作,而不是在 godaddy 运行站点上托管时工作(404 错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27871019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com