apache配置cors

位置:

需要跨域的vhosts配置文件的

<Directory>
Header set Access-Control-Allow-Origin *
   #Header set Access-Control-Allow-Methods "GET, POST, OPTIONS"
   #Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept, token"
   #Header set Access-Control-Max-Age 3600
   #Header set Access-Control-Allow-Credentials true
</Directory>

只需要开始的第一个配置就可以了。(可能一些复杂的配置需要用到下面的东西)

### 如何在Tomcat中配置CORS #### 使用`web.xml`配置CORS 为了使Web应用程序能够在受控条件下请求来自不同域的资源,在Tomcat中可以通过编辑`web.xml`文件来设置CORS过滤器。具体做法是在该文件内增加一段特定于CORS的支持代码[^1]。 ```xml <filter> <filter-name>CorsFilter</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>CorsFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` 上述XML片段展示了如何向`web.xml`添加一个名为CorsFilter的新过滤器,并将其映射到所有的URL路径上。这里设置了允许所有源(`*`)发起跨域请求;实际部署时可根据需求调整此值以限定具体的域名列表[^2]。 #### Java代码中的CORS支持 除了利用`web.xml`外,还可以直接在Java代码里加入相应的逻辑来处理CORS请求。这种方式提供了更灵活的选择,尤其是在微服务架构下的应用开发场景中更为常见[^3]。 ```java import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import java.io.IOException; public class SimpleCORSFilter implements Filter { @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletResponse response = (HttpServletResponse) res; HttpServletRequest request = (HttpServletRequest) req; // 设置响应头信息 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"); if ("OPTIONS".equalsIgnoreCase(request.getMethod())) { response.setStatus(HttpServletResponse.SC_OK); } else { chain.doFilter(req, res); } } @Override public void init(FilterConfig filterConfig) {} @Override public void destroy() {} } ``` 这段简单的自定义过滤器实现了基本的CORS功能,包括但不限于指定允许的HTTP方法、最大缓存时间以及额外头部字段等内容。对于复杂的业务逻辑,则可以根据实际情况进一步扩展此类实现[^4]。 #### 安全注意事项 值得注意的是,虽然启用CORS能带来便利之处,但也伴随着潜在的安全隐患——比如不当配置可能导致敏感数据泄露等问题。因此建议开发者们谨慎对待每一个选项的具体取值,确保只开放必要的权限给信任的合作方站点[^5]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值