У меня проблема с Tomcat и магистралью, использующей CORS. Настройка выполняется следующим образом: - Backbone отправляет почтовый запрос в tomcat - Tomcat проверяет, используя web.xml и настраиваемый фильтр (ссылка: CORS FILTER IN JAVA) и использует CORS для этого запроса - запрос обрабатывается через фильтр CORS и соответствует - ответ отправляется обратно в магистраль и не выполняется.
Backbone выполняет 2 запроса, первый 1 - это предварительный запрос и возвращает статус 200 (что хорошо), второй запрос возвращает статус 302, потому что мой jsessionid изменяется и хочет перенаправить на страницу входа, которая не работает (не в порядке).
В магистрали я уже добавил это:
data: param,
// contentType: 'application/x-www-form-urlencoded; charset=utf-8',
dataType: 'jsonp',
crossDomain: true,
//async: true,
xhrFields: {
withCredentials: true
},
И в коте это:
<init-param>
<param-name>cors.allowOrigin</param-name>
<param-value>http://localhost:8888 http://localhost:8881</param-value>
</init-param>
<init-param>
<param-name>cors.supportedMethods</param-name>
<param-value>GET, POST, HEAD, PUT, DELETE, OPTIONS</param-value>
</init-param>
<init-param>
<param-name>cors.supportedHeaders</param-name>
<param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified, X-File-Name</param-value>
</init-param>
<init-param>
<param-name>cors.supportsCredentials</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>cors.allowGenericHttpRequests</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>cors.maxAge</param-name>
<param-value>3600</param-value>
</init-param>
Но все равно не повезло. Мой JSESSIONID не отправляется моему tomcat, что вызывает создание нового JSESSIONID и сбой моего запроса.
Любая помощь будет полезна :)
Я использую Tomcat 6.0.16 и JQuery 1.8