6

私はこのURLを持っています:http://translate.google.com/translate_tts?ie=utf-8&tl=en&q=Hello+world それをブラウザのアドレスバーに置いてEnterキーを押すと、「Helloworld」という合成音声を含むmp3ファイルが表示されます。すべてが正しいです。

しかし今、私はこのURLにリダイレクトするHTMLのリンクを次のように持っています:

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

このリンクをクリックすると、ファイルは表示されませんが、エラー(単純なQuickTimeロゴ)が表示されます。なぜそうなのか、どうすれば問題を解決できるのか、誰かに説明してもらえますか?

4

1 に答える 1

6

説明は、Googleがこのサービスの使用を制限していることです。このStackOverflowの回答によると、HTTPリクエストに空の文字列以外のRefererヘッダーが含まれている場合、Googleは404エラーを返します。

アドレスバーにURLを入力すると、リファラーURLがGoogleに送信されないため、問題ありません。ハイパーリンクをクリックすると、リファラーが表示され、Googleがリクエストをブロックします。

注意:私はあなたのURLをテストしました(ここを参照)、そしてそれは機能しました。以前にアドレスバーにURLを入力して試したことが原因で、リソースがブラウザのキャッシュまたはオーディオプラグイン(VLC)のキャッシュに残っていたためだと思います。

注意:回避策については、こちらをご覧ください。

于 2012-10-14T16:03:37.873 に答える