CORS 错误:Request header field Authorization is not allowed by Access-Control-Allow-Headers in preflight response

什么是CORS?

CORS(Cross-Origin Resource Sharing)是一种安全机制,用于限制浏览器从一个源发起的跨域HTTP请求。在同源策略下,浏览器只允许发送同源的请求,即协议、主机名和端口号都相同的两个 URL。而跨域请求则需要经过服务器端的支持才能实现。

什么是预检请求?

当跨域请求中包含了非简单请求时(比如带有自定义头部字段或使用PUT/DELETE等非GET/POST方法),浏览器会先发起一次 OPTIONS 请求,称为预检请求(preflight request)。目的是向服务器确认这些非简单请求是否被允许、并获取服务器允许的请求头字段、请求方法、请求体等信息。

什么是Access-Control-Allow-Headers?

在预检请求中,服务器会返回一个响应头Access-Control-Allow-Headers来指定允许的请求头字段。如果请求头中有未被允许的字段,则浏览器会报错。

如何解决 "Request header field Authorization is not allowed by Access-Control-Allow-Headers in preflight response" 错误?

该错误表明服务器没有允许Authorization字段作为请求头。要解决这个问题,需要在服务器端的CORS配置中加入 'Authorization' 字段,示例如下:

Express

----- ------- - -------------------
----- --- - ----------
------------- ---- ----- -- -
  -- --------
  ----------------------------------------- -----
  -- --------
  ------------------------------------------ ------------------------------
  -- -------
  ------------------------------------------ ----- ----- ---- ------- --------
  -- ----------- --- ---------- -
    -- ------------
    --------------------
  - ---- -
    -------
  -
---

Koa

----- --- - ---------------
----- --- - --- ------
------------- ----- ----- -- -
  -- --------
  -------------------------------------- -----
  -- --------
  --------------------------------------- ------------------------------
  -- -------
  --------------------------------------- ----- ----- ---- ------- --------
  -- ----------- --- ---------- -
    -- ------------
    ---------- - ----
  - ---- -
    ----- -------
  -
---

总结

CORS 是一种跨域请求的安全机制,预检请求是其中的一环。要解决 "Request header field Authorization is not allowed by Access-Control-Allow-Headers in preflight response" 错误,需要在服务器端配置中加入对应的请求头字段。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/606f0b6d2d2a29a3c1202c66


猜你喜欢

  • npm包bunyan-amqp-logger使用教程

    日志记录是每个应用程序的核心要素。谁都希望了解自己的应用程序中发生了什么,这就是日志记录的用途。在前端应用程序中,使用Bunyan和AMQP Logger这两个工具可以帮助我们更有效地记录日志。

    4 年前
  • npm 包 bunyan-arangodb 使用教程

    介绍 bunyan-arangodb 是一个用于将 node.js 应用程序中的日志存储到 ArangoDB 数据库的 npm 包。ArangoDB 是一个支持多模型的 NoSQL 数据库,它具有文档...

    4 年前
  • npm 包 buttons 使用教程

    npm 包 buttons 是一个常用的前端工具,能够快速地创建漂亮的按钮组合,适合用于 Web 应用和网站的开发。在本文中,我们将深入探讨 npm 包 buttons 的使用方法,让您能够轻松地在您...

    4 年前
  • npm包buttron使用教程

    简介 Buttron是一个基于jQuery的按钮插件库,提供了多种现代按钮设计样式。 npm是Node.js的包管理器,可以用于快速下载安装第三方库。 通过使用npm可以方便地在Web项目中引入But...

    4 年前
  • npm 包 butts 使用教程

    简介 butts(Better Unit Test Syntax)是一个开源的 JavaScript 单元测试工具。它可以通过简化单元测试语法,使得单元测试更加易懂且易于维护。

    4 年前
  • NPM 包 buttt 使用教程

    在前端开发中,我们经常需要使用各种各样的第三方库和插件。npm(Node Package Manager)是一个非常流行的包管理器,可以让我们轻松地安装、管理和分享我们的代码。

    4 年前
  • npm 包:bunyan-axios-serializer 使用教程

    前言 在前端开发工作中,常常需要与后端进行网络通讯,而 axios 是当前最常用的网络请求库之一。在开发过程中需要对请求和响应进行记录和日志管理,这就需要使用 bunyan 这个日志管理工具。

    4 年前
  • npm 包 bunyan-cassandra 使用教程

    在前端开发中,有时候为了更好地对前端应用进行调试和跟踪,我们需要使用日志工具记录应用程序的日志。而 npm 包 bunyan-cassandra 就是一款方便的日志记录工具,可以将应用程序的日志记录到...

    4 年前
  • npm 包 bunyan-axon 使用教程

    在 Node.js 应用程序中,bunyan 是有名的日志库。然而,当您需要分布式日志记录功 能时 bunyan-axon 来拯救了。 bunyan-axon 是一个可伸缩的分布式 bunyan ...

    4 年前
  • npm 包 buffer-reader-grabled 使用教程

    在前端开发中,我们经常会涉及到数据传输、加密、解密等场景。在这些场景中,我们需要对二进制数据进行处理。而 buffer-reader-grabled 就是一个非常好用的 npm 包,可以非常方便地处理...

    4 年前
  • npm 包 buffer-serializer 使用教程

    在前端开发中,经常需要对数据的序列化和反序列化进行处理,而 npm 包 buffer-serializer 就是专门用于进行这种处理的工具包。本文将详细介绍该工具包的使用方法、常见问题及解决方法,旨在...

    4 年前
  • npm 包 bulk-decaffeinate 使用教程

    在前端开发中,我们常常需要将 CoffeeScript 代码转换成 JavaScript 代码,由于历史原因或其他考虑,我们可能会有大量的 CoffeeScript 代码,若将其手动转换成 JavaS...

    4 年前
  • npm 包 bulk-email-verifier 使用教程

    在现代化互联网时代中,邮件已经成为人们必不可少的一种基础通讯手段。在商业上,很多公司需要向客户发送大量邮件,比如营销、推广、邀请等。但是,大量邮件的发送可能遇到邮箱的退信、垃圾邮件等问题。

    4 年前
  • npm 包 bulk-get 使用教程

    在前端开发中,我们经常需要从服务器获取大量数据并对其进行操作。对于需要获取多个数据的请求,一次发送多个请求,在效率和性能上都不是最优的解决方案。这时,我们可以使用 npm 包 bulk-get 来优化...

    4 年前
  • npm 包 bulk-html-loader 使用教程

    什么是 bulk-html-loader bulk-html-loader 是一个 npm 包,它可以将一个文件夹下的所有 .html 文件打包成一个 JS 文件,以便在前端应用中使用。

    4 年前
  • npm 包 buttshock 使用教程

    介绍 Buttshock 是一个 npm 包,它提供了一种简单、易用的方式来重复试验你的代码。你可以很容易地将它作为你的项目的一部分来使用。 安装 你需要先安装 npm,然后打开终端或命令提示符,输入...

    4 年前
  • npm包bulk-load使用教程

    前言 Node.js以及Web开发涉及的技术日新月异,各种工具和框架层出不穷,其中npm作为最重要的JavaScript包管理器,已经成为前端开发人员必不可少的工具之一。

    4 年前
  • npm 包 buucloud 使用教程

    介绍 buucloud 是一个可以在前端中方便使用的 npm 包,它提供了强大的云存储功能,可以快速地将文件上传到云端,并提供了文件下载和删除等常用操作支持。本文将详细介绍和演示如何使用 buuclo...

    4 年前
  • npm 包 bunyan-between 使用教程

    什么是 bunyan-between? bunyan-between 是一个用于设置和使用 bunyan 日志级别的 npm 包。它允许你在您的日志输出中过滤指定日志级别只输出其中间的日志,从而方便您...

    4 年前
  • npm 包 buuk 使用教程

    前言 buuk 是一个开源的 npm 包,可以帮助开发者快速搭建基于 React 的图书管理应用。本文将详细介绍 buuk 的使用方式、优势和代码示例,希望能帮助大家快速上手。

    4 年前

相关推荐

    暂无文章