请求标头字段不允许授权

时间:2016-04-26 13:10:21

标签: php angularjs apache .htaccess laravel

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

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

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

Request header field Authorization is not allowed by Access-Control-Allow-Headers in preflight response.

2 个答案:

答案 0 :(得分:1)

快速回答

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

<IfModule mod_headers.c>
          Header set Access-Control-Allow-Headers "Authorization"
</IfModule>

更多细节

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

Header set Access-Control-Allow-Headers "Authorization"

您可以在一行中添加多个headers,但请注意,建议仅允许应用所需的标题

Header set Access-Control-Allow-Headers "Authorization, X-Requested-With"

旁注

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

Header set Access-Control-Allow-Origin "https://example.com"

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

Header set Access-Control-Allow-Origin "*"

总结

<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>

答案 1 :(得分:0)

将以下代码段放在PHP脚本的顶部:

  

标题(&#39; Access-Control-Allow-Origin:*&#39;);

     

标题(&#39; Access-Control-Allow-Methods:GET,POST&#39;);

     

标题(&#34; Access-Control-Allow-Headers:X-Requested-With&#34;);