Я в основном пытаюсь настроить управление запросами кросс-источника в этом проекте Grails.
Прямо сейчас я пытаюсь протестировать негативный случай, внося изменения для одной конечной точки API. Вот изменение, которое я добавил в свой файл контроллера, который представляет собой файл .groovy -
response.setHeader('Access-Control-Allow-Origin', 'http://somedomain.com')
response.setHeader('Access-Control-Allow-Methods', 'POST, PUT, GET, OPTIONS, PATCH')
response.setHeader('Access-Control-Allow-Headers', 'X-Additional-Headers-Example')
response.setHeader('Access-Control-Allow-Credentials', 'true')
response.setHeader('Access-Control-Max-Age', '1728000')
И вот что я получаю в ответ на вызов AJAX, сделанный этой конечной точкой из браузера -
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: X-Additional-Headers-Example
Access-Control-Allow-Methods: POST, PUT, GET, OPTIONS, PATCH
Access-Control-Allow-Origin: http://somedomain.com
Access-Control-Max-Age: 1728000
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: application/json;charset=UTF-8
Date: Fri, 14 Jun 2019 14:56:41 GMT
Keep-Alive: timeout=5, max=95
Server: Apache/2.4.6 (CentOS) mod_jk/1.2.42 OpenSSL/1.0.1e-fips
Transfer-Encoding: chunked
Vary: Accept-Encoding
X-Frame-Options: SAMEORIGIN
Насколько я понимаю, другой домен, отображаемый в заголовке ответа Access-Control-Allow-Origin
, достаточен для сбоя вызова. Но этого не происходит. Мое приложение работает на локальном порту 8080.
Сомневаясь, что это может быть из-за того, что к моему локальному хосту не подключен домен, я развернул код на сервере с допустимым доменным именем, http://someotherdomain.com. Но и там я вижу этот негативный тестовый пример не проходя Есть указатели?
Обновление
Если необходимо, значением инициатора для одного такого запроса является файл jquery.min.js, который выполняется из http://someotherdomain.com.