У меня очень странное поведение при попытке установить на моих страницах Access-Control-Allow-Credentials, чтобы разрешить CORS.
Подводя итог: мой заголовок "Allow-Credentials", отправленный с PHP, кажетсяучитывается только , если тот же заголовок отправлен самим сервером ... в этом случае заголовок становится "true, true", что не является допустимым значением ...
Я использую Laravel и у меня есть промежуточное ПО, которое добавляет соответствующие заголовки на соответствующие страницы:
header('Access-Control-Allow-Origin: mysite.test'));
header('Access-Control-Allow-Headers: Content-Type, X-Auth-Token, X-CSRF-Token, X-Requested-With, Authorization, Origin');
header('Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE');
header('Access-Control-Allow-Credentials: true');
Когда моя страница пытается отправить запрос Ajax, консоль браузера выводит следующее:
(...) The value of the 'Access-Control-Allow-Credentials' header in the response is '' which must be 'true' when the request's credentials mode is 'include'.
Попробовав несколько вещей для отладки, я добавил заголовок к самому файлу conf nginx:
add_header Access-Control-Allow-Credentials "true";
И вот тут я чувствую себя действительно беспомощным ... вывод браузера теперь такой:
(...) The value of the 'Access-Control-Allow-Credentials' header in the response is 'true, true' which must be 'true' when the request's credentials mode is 'include'.
Этот же код прекрасно работает на другом сервере с тем же файлом .conf для nginx. Есть идеи, где я могу разобраться, чтобы все это выяснить?