1. ホーム
  2. javascript

[解決済み] Ajaxリクエストです。安全でないヘッダの設定を拒否されました

2022-02-07 02:25:47

質問

Google音声合成を使って音声を再生しようとしています。そのため、Google のエンドポイントに以下のようなリクエストを送る必要があります。 RefererUser-Agent を適切に設定します。この呼び出しによって、再生可能なMP3が返されるはずです。

しかし Refused to set unsafe header のエラーが発生します。これは私のコードです。どうすればいいのでしょうか?

          $.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();
            }
          });

解決方法は?

無理です。不可能なのです。

は、その 仕様 を中止するようブラウザに要求します。 setRequestHeader メソッドを設定しようとすると Referer ヘッダを作成します(以前は User-Agent も禁止されていましたが、変更されました)...

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

(つまり、ユーザーエージェントやリファラについてごまかす必要がある場合は、おそらくそのサービスの所有者が望まない方法でサービスを使おうとしているので、それを尊重し、試すのをやめるべきです)。

jQueryはXHRをラップしていますが、同じルールが フェッチ .