请求头字段不允许授权

Yan*_*1ck 3 php apache .htaccess laravel angularjs

我的服务器上有一个基于 Laravel 的 API。我尝试从 AngularJS 前端访问这个 api。不幸的是出现了这个错误。

我必须在哪里添加配置以允许授权标头?我试图找到解决方案,但无法解决。

我尝试将其插入Angular 前端的httpd.conf和 中.htaccess,但不幸的是它不起作用:

Request header field Authorization is not allowed by Access-Control-Allow-Headers in preflight response.
Run Code Online (Sandbox Code Playgroud)

Ham*_*ari 5

快速回答

如果您的服务器使用 Apache,请将以下代码段添加到 api 各自的.htaccess文件中:

<IfModule mod_headers.c>
          Header set Access-Control-Allow-Headers "Authorization"
</IfModule>
Run Code Online (Sandbox Code Playgroud)

更多细节

在上面的代码片段中,我们要求 Apache 允许Authorization标头:

Header set Access-Control-Allow-Headers "Authorization"
Run Code Online (Sandbox Code Playgroud)

您可以在一行中添加多个headers,如下所示,但请记住,建议仅允许您的应用程序所需的标头

Header set Access-Control-Allow-Headers "Authorization, X-Requested-With"
Run Code Online (Sandbox Code Playgroud)

边注

在相关说明中,人们经常需要允许跨源请求(也称为跨源资源共享或 CORS)。以下代码片段允许来自https://example.com源的交叉请求:

Header set Access-Control-Allow-Origin "https://example.com"
Run Code Online (Sandbox Code Playgroud)

或者您可以用来"*"允许来自所有来源的请求: 不推荐

Header set Access-Control-Allow-Origin "*"
Run Code Online (Sandbox Code Playgroud)

包起来

<IfModule mod_headers.c>
    # To allow headers
    Header set Access-Control-Allow-Headers "Authorization"

    # to allow cross origin request from https://example.com
    Header set Access-Control-Allow-Origin "https://example.com"
</IfModule>
Run Code Online (Sandbox Code Playgroud)