Приложение Grails - Невозможно ограничить доступ AJAX из одного домена, указав другой домен через заголовок ответа «Access-Control-Allow-Origin» - PullRequest
1 голос
/ 15 июня 2019

Я в основном пытаюсь настроить управление запросами кросс-источника в этом проекте 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.

enter image description here

...