web-dev-qa-db-ja.com

Ajaxリクエスト:安全でないヘッダーの設定を拒否しました

Google Text-To-Speechを使用してオーディオを再生しようとしています。したがって、リファラーとユーザーエージェントを適切に設定して、エンドポイントにリクエストを送信する必要があります。この呼び出しは、再生できるMP3を返す必要があります。

ただし、「安全でないヘッダーの設定を拒否しました」というエラーが表示されます。これは私のコードです。どうすればいいですか?

          $.ajax({
            url: 'http://translate.google.com/translate_tts?ie=UTF-8&q=Hello&tl=en&client=t',
            beforeSend: function(xhr) {
                 xhr.setRequestHeader("Referer", "http://translate.google.com/");
                 xhr.setRequestHeader("User-Agent", "stagefright/1.2 (Linux;Android 5.0)");
            }, success: function(data){
                el.mp3 = new Audio(data);
                el.mp3.play();
            }
          });
15
Arturo

できません。それは不可能です。

specification では、これらのヘッダーを設定しようとすると、ブラウザーはsetRequestHeaderメソッドを中止する必要があります。

これらのヘッダーを設定する必要がある場合は、訪問者のブラウザではなくサーバーからリクエストを行う必要があります。

(つまり、ユーザーエージェントまたはリファラーを欺く必要がある場合は、おそらくサービスの所有者が望まない方法でサービスを使用しようとしているので、それを尊重して試行を停止する必要があります)。

また、「 Fetch forbidden header names 」も確認してください。

25
Quentin