Angular调用生产环境PHP API触发CORS错误:Authorization头未获允许
解决调用PHP API时的CORS授权头错误
问题核心:你的Angular拦截器会自动为请求添加Authorization请求头,但PHP后端的CORS配置未将该头纳入允许列表,导致浏览器预请求(OPTIONS)被拦截。
直接解决方案:修改PHP代码中的Access-Control-Allow-Headers配置,添加Authorization字段:
header("Access-Control-Allow-Headers: X-API-KEY, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method, Authorization");
额外优化建议:
- 生产环境不要使用宽松的跨域配置,应指定具体的前端域名(比如将
http://localhost:4200替换为你的生产前端地址) - 确保服务器能正确处理OPTIONS预请求,若存在问题,可在PHP代码开头添加OPTIONS请求的处理逻辑:
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') { header("Access-Control-Allow-Origin: http://localhost:4200"); // 生产环境替换为实际域名 header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS"); header("Access-Control-Allow-Headers: X-API-KEY, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method, Authorization"); exit; }
- 后续若有其他自定义请求头需要传递,需同步添加到
Access-Control-Allow-Headers列表中
内容的提问来源于stack exchange,提问作者sistemas13
相关产品推荐
相关产品推荐

