тестируем мобильную версию сайта - m.example.com и есть домен hhh.example.com откуда берутся разные данные, все домены мои
настроил cors для hhh.example.com
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' 'm.example.com';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
}
if ($request_method = 'POST') {
add_header 'Access-Control-Allow-Origin' 'm.example.com';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
}
if ($request_method = 'GET') {
add_header 'Access-Control-Allow-Origin' 'm.example.com';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
}
смотрю через мозилу и хром
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://hhh.example.com/api/. (Reason: CORS header ‘Access-Control-Allow-Origin’ does not match ‘m.example.com’).[Подробнее]
Запрос из постороннего источника заблокирован: Политика одного источника запрещает чтение удаленного ресурса на http://hhh.example.com/api/. (Причина: не удалось выполнить запрос CORS)
Failed to load http://hhh.example.com/device: Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header contains the invalid value 'm.example.com'. Origin 'http://m.example.com' is therefore not allowed access. Have the server send the header with a valid value, or, if an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
смотрю через просмотр кода на странице
URL запроса: http://hhh.example.com/api/
Метод запроса: OPTIONS
Удалённый адрес: IP
Код состояния: 204
Версия: HTTP/1.1
Access-Control-Allow-Credentials true
Access-Control-Allow-Headers DNT,X-Mx-ReqToken,Keep-Alive,U…ce,Cache-Control,Content-Type
Access-Control-Allow-Methods
GET, POST, OPTIONS
Access-Control-Allow-Origin m.example.com
...
видно что cors работает, но почему браузеры ругаются?