AngularJS:拒绝设置不安全标头“Access-Control-Request-Headers”

2024-02-06

我正在尝试使用 AngularJS 调用本地运行的 REST API。这是 AngularJS 代码:

$http.defaults.headers.common = {"Access-Control-Request-Headers": "accept, origin, authorization"};

$http.defaults.headers.common['Authorization'] = 'Basic amF5M2RlYzpqYXk=';
$http({method: 'GET', url: 'http://127.0.0.1:5000/user/jay3dec'}).
        success(function(data, status, headers, config) {

        }).
        error(function(data, status, headers, config) {
            alert(data);

        });

但我在浏览器控制台中收到错误:

Refused to set unsafe header "Access-Control-Request-Headers" 

我尝试查询调用运行于的 REST APIhttp://127.0.0.1:5000/user/jay3dec http://127.0.0.1:5000/user/jay3dec使用卷曲。

curl -H "Origin: http://127.0.0.1:8000" -H "Authorization: Basic amF5M2RlYzpqYXk=" http://127.0.0.1:5000/user/jay3dec --verbose

它给出了以下输出:

> GET /user/jay3dec HTTP/1.1
> User-Agent: curl/7.35.0
> Host: 127.0.0.1:5000
> Accept: */*
> Origin: http://127.0.0.1:8000
> Authorization: Basic amF5M2RlYzpqYXk=
> 
* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
< Content-Type: application/json
< Content-Length: 454
< ETag: bff7b7db33baedb612276861e84faa8f7988efb1
< Last-Modified: Tue, 30 Dec 2014 14:32:31 GMT
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Headers: Authorization
< Access-Control-Allow-Methods: HEAD, OPTIONS, GET
< Access-Control-Allow-Max-Age: 21600
< Server: Eve/0.4 Werkzeug/0.9.6 Python/2.7.6
< Date: Sun, 25 Jan 2015 20:00:29 GMT
< 
* Closing connection 0
{"username": "jay3dec", "_updated": "Tue, 30 Dec 2014 14:32:31 GMT", "password": "jay", "firstname": "jay", "lastname": "raj", "phone": "9895590754", "_links": {"self": {"href": "/user/54a2b77f691d721ee170579d", "title": "User"}, "parent": {"href": "", "title": "home"}, "collection": {"href": "/user", "title": "user"}}, "_created": "Tue, 30 Dec 2014 14:32:31 GMT", "_id": "54a2b77f691d721ee170579d", "_etag": "bff7b7db33baedb612276861e84faa8f7988efb1"}

任何人都可以发现可能是什么问题吗?


后面的代码$http.defaults.headers.common is

var xhr = createXhr();

xhr.open(method, url, true);
  forEach(headers, function(value, key) {
    if (isDefined(value)) {
        xhr.setRequestHeader(key, value);
    }
  });

...

function createXhr() {
    return new window.XMLHttpRequest();
}

参考XMLHttpRequest 规范 https://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#dom-xmlhttprequest-setrequestheader,如果标头与以下标头之一不区分大小写匹配,浏览器将终止

Accept-Charset
Accept-Encoding
Access-Control-Request-Headers
Access-Control-Request-Method
Connection
Content-Length
...

这就是为什么你不能使用$http.defaults.headers.common to set Access-Control-Request-Headers标头。浏览器将为您处理请求标头。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AngularJS:拒绝设置不安全标头“Access-Control-Request-Headers” 的相关文章

随机推荐

  • 在 Eclipse 的 Android 设备中看不到 Nexus7 [重复]

    这个问题在这里已经有答案了 可能的重复 ADB 无法识别我的 Galaxy Nexus Win7 https stackoverflow com questions 8801829 adb dosnt recognize my galaxy
  • Java 8用于计算小数年龄的日期时间[重复]

    这个问题在这里已经有答案了 我是 Java 8 日期时间 API 的新手 想知道如何计算以小数表示的年龄 它返回双精度值 例如 30 5 这意味着 30 年零 6 个月 例如 下面的示例代码得到的输出为 30 0 但不是 30 5 这可能是
  • 散列和索引有什么区别?

    我研究了 DBMS 中的哈希 可扩展 线性 和 DBMS 中的索引 稀疏 密集 基于辅助键的索引等 但我无法理解哈希和索引之间的区别 这两种技术是一起使用还是单独使用 我很困惑 因为这两种技术的目的似乎都是为了让我们能够快速检索数据 所以我
  • EL 语法错误是 en

    JSP页面中的以下语句在第一个附近遇到错误equals出现这种情况 请问是什么原因 如何解决 请尽快纠正 fn length updateStock todayDimensionStones i count DimensionStones
  • 以编程方式获取当前页面

    在 JSF 支持 Bean 托管 Bean 焊接 Bean 无关紧要 中 我可以通过调用获取客户端所在的上下文路径 FacesContext ctx FacesContext getCurrentInstance String path c
  • C# 线程问题和最佳实践

    这是我第一次在 C 应用程序中使用线程 基本上它是一个应用程序 用于检查列表中的一堆网站是死是活 这是我第一次尝试使用多线程 public void StartThread string URL int no Thread newThrea
  • application(_:didFinishLaunchingWithOptions:)' 几乎符合可选要求

    安装 Xcode 8 beta 6 后 我收到一条警告 实例方法 application didFinishLaunchingWithOptions 几乎匹配协议 UIApplicationDelegate 的可选要求 applicatio
  • 如何在 Blackberry BrowserField 中缓存

    我正在创建一个 Blackberry 应用程序来显示某个站点的全屏 Web 视图 我有一个可以正常显示的工作浏览器字段 但从页面到页面的导航速度比本机浏览器慢 浏览器字段似乎没有内置缓存 导致加载时间很慢 当我添加以下代码来管理缓存时 该站
  • FlipSide 上带有导航控制器和表格视图的实用应用程序

    我对整个 MVC 看待事物的方式还比较陌生 我有一个基于 实用程序 应用程序模板的应用程序 MainView 和 FlipsideView 中的所有内容都运行良好 但现在我需要将 TableView 和导航控制器添加到 Flipside 主
  • igraph错误无法创建具有负数顶点的空图

    当我尝试创建下面的简单图表时 为什么会出现错误 如果我用数字替换 a 和 b 那么它可以工作吗 任何解决方案 g1 lt graph c a b directed TRUE error is Error in graph c a b dir
  • 在 hibernate 聚合函数中使用函数作为参数

    我想在 HQL 中执行以下查询 select count distinct year foo date from Foo foo 但是 这会导致以下异常 org hibernate hql ast QuerySyntaxException
  • 如何在 Dynamics 365 On-Premise 中使用 EasyRepro 自动登录

    我正在尝试使用 Dynamics 365 On Premise 中的 EasyRepro 进行自动化 UI 测试 我成功完成了测试 但遇到了一个问题 我无法自动登录到我的 Dynamics 365 Organization 下面是我使用的代
  • 如何在VBA中进行后期绑定?

    我有一个通过 VBA 创建电子邮件的函数 我通过 Excel 2016 做到了这一点 当我的一些同事尝试使用它时 出现了缺少引用的错误 Outlook Library 16 0 我在互联网上寻找解决方案 发现最好的是后期绑定 我已经阅读过它
  • JButton 边距。当雨云普拉夫时不受尊重

    该物业margin of a JButton安装 Nimbus 外观后不会受到尊重 我需要一些 小 按钮 但 nimbus 强制按钮文本周围的空间变大 所以我只得到 非常大 的按钮 我发现在Nimbus 默认页面 http docs ora
  • 将 float 转换为 UInt32 - 哪个表达式更精确

    我有一个号码float x它应该在 范围内 但它经过多次数值运算 结果可能稍微超出 范围 我需要将这个结果转换为uint y使用整个范围的UInt32 当然 我需要夹住x在 范围内并对其进行缩放 但哪种操作顺序更好呢 y uint roun
  • 如何在netbeans中对ejs文件进行语法高亮显示

    我很长时间以来一直在 netbeans IDE 中工作 最近开始在 NodeJs 中编码 但 ejs 文件没有高亮代码 如何摆脱这个问题 您需要使用某些关联文件类型配置 ejs 文件扩展名 脚步 转到工具 gt 选项 单击 其他 选项卡 然
  • 如何在重新安装应用程序时删除数据

    感谢之前的回复 重新安装应用程序后是否可以从 sqlite 中删除存储的内容 我将数据存储在数据库中 一旦我再次重新安装相同的应用程序 以前的数据仍然存储在 sqlite 中 我想在重新安装应用程序时删除存储的内容 我对此不太确定 这看起来
  • 使用spaCy 3.0将数据从旧的Spacy v2格式转换为全新的Spacy v3格式

    我有变量trainData其具有以下简化格式 Paragraph A entities 15 26 DiseaseClass 443 449 DiseaseClass 483 496 DiseaseClass Paragraph B ent
  • 添加对 MEF 插件项目的引用时,为什么会出现警告图标?

    我希望通过直接引用插件项目并实例化插件类来测试插件的核心类 当我创建测试控制台应用程序项目并将项目引用添加到插件项目时 我在引用列表中的引用旁边看到一个警告图标 带有感叹号的黄色三角形 当我添加对 dll 插件的程序集构建输出 的引用时 我
  • AngularJS:拒绝设置不安全标头“Access-Control-Request-Headers”

    我正在尝试使用 AngularJS 调用本地运行的 REST API 这是 AngularJS 代码 http defaults headers common Access Control Request Headers accept or