前端请求跨域问题

来源:互联网 发布:淘宝商品id 编辑:程序博客网 时间:2024/05/18 02:57

使用微信接口时,遇到前端请求跨域问题,不用修改tomcat  conf,配置过滤器即可。


过滤器

package me.ele.mercuris.svr.web.framework;import com.google.gson.Gson;//import me.ele.mercuris.coffee.dto.KarmaUser;import me.ele.mercuris.common.exception.SystemException;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.servlet.*;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;public class WebAPISecurityFilter implements Filter {final static Logger logger = LoggerFactory.getLogger(WebAPISecurityFilter.class);private WebAPISecurityProtocol securityProtocol = new WebAPISecurityProtocol();@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,ServletException {HttpServletRequest httpRequest = (HttpServletRequest) request;HttpServletResponse httpResponse = (HttpServletResponse) response;corsResponse(httpResponse);chain.doFilter(request, response);}/** * Cross-origin resource sharing (CORS) * * @param response */private void corsResponse(HttpServletResponse response) {response.setHeader("Access-Control-Allow-Origin", "*");response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE");response.setHeader("Access-Control-Max-Age", "3600");response.setHeader("Access-Control-Allow-Headers", WebAPISecurityProtocol.CUSTOM_HEADERS);}@Overridepublic void destroy() {}}



context-svr.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="    http://www.springframework.org/schema/beans    http://www.springframework.org/schema/beans/spring-beans.xsd">    <!-- 这是一个基础的Filter但依赖于基础认证 -->   <bean id="webapi_security" class="me.ele.mercuris.svr.web.framework.WebAPISecurityFilter">    </bean>   </beans>

在web.xml中添加

 <filter>        <filter-name>webapi_security</filter-name>        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>        <init-param>            <param-name>targetFilterLifecycle</param-name>            <param-value>true</param-value>        </init-param>    </filter>    <filter-mapping>        <filter-name>webapi_security</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping>


0 0
原创粉丝点击