【发布时间】:2013-12-18 09:19:02
【问题描述】:
我在使用 CORS 的 Tomcat 和骨干网方面遇到问题。 设置如下: - Backbone 向 tomcat 发送一个 post 请求 - Tomcat 使用 web.xml 和自定义过滤器进行检查(链接:CORS FILTER IN JAVA)并在此请求上使用 CORS - 请求通过 CORS 过滤器进行处理并匹配 - 响应被发送回骨干网并失败。
Backbone 执行 2 个请求,第一个是预检请求并返回 200 状态(这很好),第二个请求返回 302 状态,因为我的 jsessionid 已更改并希望重定向到失败的登录页面(不正常)。
在主干中我已经添加了这个:
data: param,
// contentType: 'application/x-www-form-urlencoded; charset=utf-8',
dataType: 'jsonp',
crossDomain: true,
//async: true,
xhrFields: {
withCredentials: true
},
在tomcat中:
<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
【问题讨论】:
标签: tomcat backbone.js cors jsessionid