我正在尝试使用Google Text-To-Speech播放音频。因此,我需要在Referer和User-Agent正确设置的情况下向其端点发布请求。此调用应返回我可以播放的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();
}
});
你不能。是不可能的。
specification要求浏览器在尝试设置这些标头时中止setRequestHeader
方法。
如果您需要设置这些标题,那么您需要从服务器而不是访问者的浏览器发出请求。
(也就是说,如果您需要欺骗用户代理或引用者,那么您可能正试图以其所有者不想要的方式使用该服务,因此您应该尊重并停止尝试)。
另请查看“Fetch forbidden header names”。
你不能。是不可能的。
如果您尝试设置标准请求标头,则规范要求浏览器中止setRequestHeader
方法。
而不是你可以设置自定义标头来满足您的请求。