Как по мне, лучше обрабатывать options самим же nginx, чтобы не дергать пхп лишний раз
Вместо add_header 'Access-Control-Allow-Origin' "$http_origin"; на продакшене надо захардкодить домен
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' "$http_origin";
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Origin,Accept';
add_header 'Content-Type' 'application/json';
add_header 'Content-Length' 0;
return 204;
}