我有这个网址:http://translate.google.com/translate_tts?ie = utf-8& tl = en& q =你好世界
当我把它放到浏览器的地址栏并点击回车时,我得到了带有“Hello world”的综合语音的mp3文件.一切都是正确的.
当我把它放到浏览器的地址栏并点击回车时,我得到了带有“Hello world”的综合语音的mp3文件.一切都是正确的.
但现在我在HTML中有一个重定向到此URL的链接,如下所示:
<a href="http://translate.google.com/translate_tts?ie=utf-8&tl=en&q=Hello+world">Link</a>
当我单击此链接时,我没有收到文件但是出现错误(简单的QuickTime徽标).任何人都可以解释我为什么这样,我怎么能解决我的问题?
解决方法
解释是Google限制此服务的使用:根据
this StackOverflow answer,如果HTTP请求包含
Referer header而不是空字符串,则Google会返回404错误.
当您在地址栏中键入URL时,没有任何Referer URL传输给Google.当您点击超链接时,您有一个引用者,谷歌会阻止您的请求.
注意:我测试了你的URL(见here),它确实有效.我怀疑这只是因为我之前尝试过在地址栏中输入URL,资源仍然在我的浏览器缓存或我的音频插件(VLC)缓存中.