【发布时间】:2016-01-13 15:07:45
【问题描述】:
我正在尝试使用 Google Text-To-Speech 播放音频。因此,我需要在正确设置 Referer 和 User-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();
}
});
【问题讨论】:
-
不管你设置什么标题,谷歌翻译端点不支持CORS
-
从 cURL 可以正常工作...
-
@Arturo — 对于 cURL,您是自己发出请求,而不是要求访问者的浏览器代表您在后台悄悄地执行此操作。当您试图让其他人的浏览器执行操作时,会有很多额外的安全限制。
标签: javascript ajax request user-agent http-referer