在开发公司内部系统前后端分离开发的。前端与后端会通过 http 的 header 参数的 authorization 认证,去辨别请求是否合法。最近前端同事在封装下载文件的代码,发现下载文件时,浏览器会报错:
Access to XML HttpRequest at “ *** ” from origin “ ** ” has been blocked by CORS policy: Request header field authorization is not allowed by Access-Contol-Allow-Header in prefilght response.
如下图:
查阅资料发现,要通过配置 Nginx add_header, 让服务器能识别 authorization。如下:
插播下,其他知识点,由于测试环境的 nginx 使用 docker 部署的,这里分享下。docker-compose 如何检查 nginx 配置文件的语法。
// docker 下 nginx 配置文件的语法检测
docker-compose exec nginx nginx -t
// docker 下 nginx 平滑重启,修改完配置就不用重启容器了
docker-compose exec nginx nginx -s reload