Nginx 配置跨域踩坑

公司的测试服务器老是出问题,有时候报跨域,有时候返回 json 时把请求的数据也返回了(导致前端解析 json 失败)

这里记一下 nginx 配置跨域问题

# 允许跨域的域名 *表示所有
add_header Access-Control-Allow-Origin * always;
# 允许请求头带上cookie
add_header Access-Control-Allow-Credentials true always;
# 允许请求的方法
add_header Access-Control-Allow-Methods * always;
# 允许请求的header
add_header Access-Control-Allow-Headers * always;

注意:不要重复设置,同时 PHP 也设置了,可能会导致失败。还有个陷阱,不带 always 参数时程序返回422、500之类的话,这个响应头是不生效的,所以最好带上 always 参数。

always 把我折腾了一下午,难受