javascript - Ajax 请求 : Refused to set unsafe header

标签 javascript ajax request user-agent http-referer

我正在尝试使用 Google Text-To-Speech 播放音频。因此,我需要使用正确设置的 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();
            }
          });

最佳答案

你不能。这是不可能的。

specification如果您尝试设置 Referer header ,则要求浏览器中止 setRequestHeader 方法(以前 User-Agent 也被禁止,但已经改变了)..

如果您需要手动设置 Referer,那么您需要从您的服务器而不是访问者的浏览器发出请求。

(也就是说,如果您需要对用户代理或引荐来源进行欺骗,那么您可能正在尝试以其所有者不希望的方式使用该服务,因此您应该尊重这一点并停止尝试)。

请注意,虽然 jQuery 包装了 XHR,但同样的规则适用于 fetch .

关于javascript - Ajax 请求 : Refused to set unsafe header,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33143776/

相关文章:

JavaScript:检测 AJAX 请求

javascript - mongodb 在嵌套容器中找不到我的模式方法

javascript - python selenium提交按钮在日期选择器后不起作用

javascript - 如何有效地将相同的 "prop"传递给每个无状态演示组件?

javascript - 使用setInterval()在mysql数据库中自动更新时间

python - Django 抛出 TypeError : _wrapped_view() missing 1 required positional argument: 'request'

java - 如何避免转义 WebTarget 查询参数?

javascript - html 表单崩溃 IE 11

python - django agon- rating 中的 403 FORBIDDEN

javascript - Bing map Ajax v7 图钉在缩放/平移上移动