【问题标题】:how to resolve Refused to set unsafe header "User-Agent" in Javascript如何解决拒绝在 Javascript 中设置不安全的标头“User-Agent”
【发布时间】:2019-07-16 14:44:29
【问题描述】:

我正在尝试构建一个 json/javascript 接口来检查 haveibeenpwned 上的电子邮件。

但是,在尝试设置标头时,我收到一个错误(在开发人员工具中):

jquery-1.10.2.js:8699 拒绝设置不安全的标头“User-Agent”

这是我的代码:

 $(document).ready(function() {
    $.ajax({
      url: 'https://haveibeenpwned.com/api/v2/breachedaccount/mark@fixitks.co.uk',
      type: 'GET',
      dataType: 'json',
      success: function() { alert('hello!'); },
      error: function() { alert('boo!'); }
      ,
      headers: {
  'User-Agent': 'uaheader'
}
    });
  });

我可以在浏览器中从 C# 运行类似的代码而没有任何问题,但在 Javascript 中则不行。

反正有这方面的。

谢谢,马克

【问题讨论】:

  • 浏览器会限制你在 ajax 调用中设置。
  • 谢谢 - 如果我不使用 ajax,在这种情况下我可以只用 Javascript 来做吗 - 还是会受到限制?
  • ajax 是 javascript - jquery 只是包装它。您无法直接从浏览器执行任何操作
  • ... 或者直接来自 JS。您可以在 Chrome 的开发工具中覆盖 userAgent 字符串,在 FF 中您必须将其设置为 about: 配置。

标签: javascript xmlhttprequest


【解决方案1】:

setRequestHeader 方法有多个禁止的标头。可以查看here

这个文档还说,

注意:根据规范,不再禁止 User-Agent 标头 — 请参阅 禁止的标头名称列表(这是在 Firefox 43 中实现的)——它 现在可以在 Fetch Headers 对象中设置,或者通过 XHR setRequestHeader().

所以如果你从 Firefox 43+ 运行它,它不会显示 Refused to set unsafe header "User-Agent"

如果您从服务器发出请求,您将不会遇到此问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-29
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 2013-07-24
    • 1970-01-01
    • 2016-01-13
    相关资源
    最近更新 更多