请求标头字段不允许授权
我的服务器上有一个基于Laravel的API。我尝试从AngularJS前端访问这个api。不幸的是这个错误出现了。请求标头字段不允许授权
我必须添加配置以允许授权标头? 我试图找到一个解决方案,但无法解决它。
我试图将其插入到httpd.conf
,并在角前端的.htaccess
但遗憾的是它没有工作:
Request header field Authorization is not allowed by Access-Control-Allow-Headers in preflight response.
将下面的代码片段顶部在你的PHP脚本:
header('Access-Control-Allow-Origin:*');
header('Access-Control-Allow-Methods:GET,POST');
header(“Access-Control-Allow-Headers:X-Requested-With”);
快速解答
如果您的服务器使用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>
不错,这正是我需要的 – Matohawk
我在AWS上使用亚马逊机器映像。我试图将Headers添加到httpd.conf中。但它仍然不起作用。是否有可能需要将某些内容添加到访问api的JavaScript文件中? – Yann1ck