IBM JAX-RS 1.1 обрабатывает запрос Dojo Ajax OPTIONS
В настоящее время я экспериментирую с возможностями IBM JAX-RS через WAS 7 и Web 2.0 Feature Pack 1.1.0.0. Проблема, с которой я сталкиваюсь, заключается в том, что клиентский AJAX-вызов Dojo создает CORS-ситуацию, и я пытаюсь выяснить, как правильно обработать запрос OPTIONS.
Я следовал примеру в ссылочном URL (хотя это для WAS 8, это не должно влиять на роль, с которой я играю); однако сообщается, что система не может найти какой-либо метод, который поддерживает ОПЦИИ.
Любая помощь будет оценена!
Ссылочный URL: http://www14.software.ibm.com/webapp/wsbroker/redirect?version=matt&product=was-base-iseries&topic=twbs_jaxrs_wadl_serving
1 ответ
Хотя прошло меньше дня, так как я не получил никакого ответа, я хочу опубликовать временное решение, которое я до сих пор собирал.
Прежде всего, проверьте ссылку ниже от Mozilla для лучшего понимания запроса CORS и OPTIONS (это помогло мне).
Ссылка: https://developer.mozilla.org/en-US/docs/HTTP_access_control
Далее одно обновление по проблеме опций IBM JAX-RS. Похоже, что запрос OPTIONS обрабатывается не иначе, как другие GET/POST, он требует точного соответствия значения @Path. Это на самом деле нежелательно, и в моем случае я попробовал подстановочный знак в значении @Path, который не справлялся с тем, чтобы заставить систему обрабатывать OPTIONS.
Теперь для решения. Неудивительно, что в итоге я использовал фильтр для пересылки запроса OPTIONS в метод внутри ресурса, помеченный @OPTIONS и фиксированным значением @Path, например, @Path("options").
В фильтре я обрабатываю Allow-Origin и Allow-Header, затем я оставил метод @OPTION ресурса для работы с Allow-Methods.
Это очень простое и базовое решение. Наряду с надлежащей проверкой внутри фильтра, заголовок не нужно добавлять чрезмерно для каждого запроса.
Один улов здесь, это работает для Chrome (Версия 23.0.1271.95 м) и Mozilla (9.0.1), но не IE. Я все еще пытаюсь выяснить, как IE реагирует на эти CORS. Надеюсь это поможет.