Java 处理GWT/Spring MVC中的SOP-Rest
我正在实现我的gwtwebapp的客户端,我需要与提供restapi的基于Spring的web服务器交互。我利用DTO模式通过GET和POST进行通信。当我在同一个Tomcat实例上部署GWT客户机和Spring服务器时,一切都正常工作。如果我在两个实例上部署它们,就会得到HTTP状态0,这是应用SOP的标志 在服务器上,我实现并设置了CORS过滤器:Java 处理GWT/Spring MVC中的SOP-Rest,java,spring,spring-mvc,tomcat,gwt,Java,Spring,Spring Mvc,Tomcat,Gwt,我正在实现我的gwtwebapp的客户端,我需要与提供restapi的基于Spring的web服务器交互。我利用DTO模式通过GET和POST进行通信。当我在同一个Tomcat实例上部署GWT客户机和Spring服务器时,一切都正常工作。如果我在两个实例上部署它们,就会得到HTTP状态0,这是应用SOP的标志 在服务器上,我实现并设置了CORS过滤器: @Component public class SimpleCORSFilter implements Filter { public voi
@Component
public class SimpleCORSFilter implements Filter {
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods",
"POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
chain.doFilter(req, res);
}
public void init(FilterConfig filterConfig) {
}
public void destroy() {
}
}
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods",
"POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers",
"X-Requested-With,Content-Type");
在web.xml中,我放了:
<filter>
<filter-name>simpleCORSFilter</filter-name>
<filter-class>com.lh.clte.web.util.SimpleCORSFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>simpleCORSFilter</filter-name>
<servlet-name>rest</servlet-name>
</filter-mapping>
考虑到所有这些,我调整应用程序以适应SOP并允许在不同服务器上部署的最佳方法是什么?谢谢。在服务器端和客户端设置适当的头可以解决以下问题: 服务器(CORS筛选器): GWT请求大楼:
b.setHeader("Content-Type", "application/json");
为什么在请求中设置
访问控制允许标题?另外,内容类型
未在响应标题中设置访问控制允许标题
b.setHeader("Content-Type", "application/json");