6

我有这个 URL:http://translate.google.com/translate_tts?ie=utf-8&tl=en&q=Hello+world 当我把它放到浏览器的地址栏并按 Enter 键时,我得到带有合成语音的 mp3 文件,上面写着“Hello world”。一切都是正确的。

但现在我有一个 HTML 链接,它重定向到这个 URL,如下所示:

<a href="http://translate.google.com/translate_tts?ie=utf-8&tl=en&q=Hello+world">Link</a>

当我单击此链接时,我没有收到文件,而是收到错误消息(简单的 QuickTime 徽标)。谁能解释我为什么会这样,我该如何解决我的问题?

4

1 回答 1

6

解释是谷歌限制了这项服务的使用:根据这个 StackOverflow 答案,如果 HTTP 请求包含非空字符串的Referer 标头,谷歌将返回 404 错误。

当您在地址栏中键入 URL 时,没关系,因为没有向 Google 传输Referer URL。当你点击一个超链接时,你就有了一个推荐人,谷歌会阻止你的请求。

注意:我测试了您的 URL(请参见此处),并且有效。我怀疑这只是因为我之前尝试过在地址栏中输入 URL,而该资源仍在我的浏览器缓存或音频插件 (VLC) 缓存中。

NB2:请参阅此处了解解决方法。

于 2012-10-14T16:03:37.873 回答