【问题标题】:CORS and TomcatCORS 和 Tomcat
【发布时间】: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


    【解决方案1】:

    dataType 更改为'json'

    【讨论】:

      猜你喜欢
      • 2012-08-22
      • 2016-07-09
      • 2020-02-26
      • 2015-10-13
      • 2014-03-30
      • 2014-08-14
      • 2016-08-26
      • 2016-01-13
      相关资源
      最近更新 更多