Я пытаюсь настроить поддержку CORS в Грааль, и я использую следующий фильтр:CORS in grails - все запросы терпят неудачу?
class CorsFilters {
def filters = {
all(controller:'*', action:'*') {
before = {
response.setHeader("Access-Control-Allow-Origin", "*")
}
}
}
}
От тестирования, он выглядит как заголовок ответа правильно настроен для всех запросов, но когда я делаю запрос извне на локальном или какой-то сервер доступного для меня, я получаю следующее сообщение об ошибке:
XMLHttpRequest cannot load http://server:8080. Origin http://jsbin.com is not allowed by Access-Control-Allow-Origin.
This live example работает в моем экземпляре Chrome, так что я не знаю, что может быть здесь происходит. В запросах, которые терпят неудачу, я пытаюсь нажать tomcat напрямую.
Что может случиться, чтобы это не получилось?
Две вещи приходят на ум. 1. Использование localhost (домен первого уровня) не является хорошей идеей; Я не могу найти источник прямо сейчас, но у меня были проблемы недавно с этим. Используйте файл hosts для установки поддельного хоста. 2. Является ли код в JSBin тем, что вы используете для запроса? Если нет, некоторые библиотеки/рамки JS могут сначала отправить запрос OPTIONS (предварительный запрос), который вам необходимо ответить соответствующим образом. Подтвердите, если это так, и я могу дать ответ, я уже разработал решение в Grails. Удачи! – Esteban