Сервлет получает ОПЦИИ вместо GET-запросов от jQuery? - PullRequest
1 голос
/ 07 мая 2010

Все, чего я хочу добиться, - это реализовать сервлет, предоставляющий канал json для моего приложения fullcalendar. Когда я проверяю http://arshaw.com/js/fullcalendar/examples/json.html с помощью Bugzilla, я вижу, что GET-запросы отправляются для получения фида json.

Однако, когда я использую этот пример в моем сценарии, fullcalendar, похоже, отправляет OPTIONS-запросы. Единственное отличие состоит в том, что я заменил "events:" json-events.php "на" http://localhost:8080/CalendarServletTest/HelloWorldServlet" (URL моего сервлета). Что мне не хватает? Или это действительно ошибка?

1 Ответ

2 голосов
/ 08 мая 2010

jQuery действительно может делать это, когда ему нужно запустить кросс-домен XMLHttpRequest, тогда как возвращаемое dataType не равно jsonp. Это характерное поведение, и оно может зависеть от конфигурации безопасности используемого веб-браузера. Запрос HTTP OPTIONS должен просто возвращать заголовок Allow со списком методов запроса, которые разрешено использовать для конкретного URL-адреса, чтобы затем jQuery мог продолжаться соответствующим образом.

На самом деле это не должно вызывать технических проблем, но если вы не хотите, чтобы он запускал запрос OPTIONS, вам нужно разрешить сервлету работать в том же домене или реализовать doOptions() соответственно (однако HttpServlet по умолчанию выполняет свою задачу должным образом, так что это фактически не должно создавать технических проблем), или измените dataType на jsonp в источнике Fullcalendar (и при необходимости сообщите об этом также ребятам из Fullcalendar).

...