Tomcat 同源跨域
时间: 2023-10-18 20:09:59 浏览: 89
Tomcat跨域
Tomcat并不直接涉及跨域问题,跨域问题主要是由浏览器实现的安全策略所导致的。Tomcat作为一个Web服务器,提供HTTP服务,只负责接收和响应请求,并不会限制或控制跨域访问。
在Tomcat中,可以通过配置web.xml文件中的CORS过滤器来解决跨域问题。CORS(Cross-Origin Resource Sharing)是一种机制,允许Web页面从不同的域访问某些资源。可以在Tomcat的web.xml文件中添加以下配置:
```xml
<filter>
<filter-name>CORS</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CORS</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
```
这个配置会允许所有来源的请求跨域访问。如果需要限制跨域访问的来源,可以将`cors.allowed.origins`的值设置为允许的来源域名,多个域名之间用逗号分隔。
另外,如果需要在Servlet中通过代码来设置CORS头信息,可以使用以下代码:
```java
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
response.setHeader("Access-Control-Allow-Headers", "Content-Type,X-Requested-With");
response.setHeader("Access-Control-Max-Age", "3600");
```
以上代码设置了允许所有来源的请求跨域访问,并且允许的HTTP方法包括GET、POST、PUT、DELETE、OPTIONS,允许的请求头包括Content-Type和X-Requested-With。同时,设置了CORS响应头的缓存时间为3600秒。
阅读全文