ajax 跨域解决办法。

来源:互联网 发布:杭州交警网络教育平台 编辑:程序博客网 时间:2024/05/17 09:05

第一步:

    在 web.xml中 配置过滤器  当所有此url发来的请求 跨域也会被准许,前端请求必须加上标明跨域的头

<filter>
<filter-name>CorsFilter</filter-name>
  <filter-class>com.eagle.channel.platform.adapter.CorsFilter</filter-class>
  </filter>
<filter-mapping>
  <filter-name>CorsFilter</filter-name>
  <url-pattern>/mobile/testMobile.do</url-pattern>
  </filter-mapping>


第二步:

编写一个对应的过滤器类

package com.eagle.channel.platform.adapter;
import java.io.IOException;
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 javax.servlet.http.HttpServletResponse;

/**
 * 解决Test接口调用过程中,跨域访问问题
 * @author zhoujia
 * @version 1.0
 */
public class CorsFilter implements Filter {
 public CorsFilter() {
 }


 public void doFilter(ServletRequest request, ServletResponse response,
 FilterChain chain) throws IOException, ServletException {


 HttpServletResponse httpServletResponse = (HttpServletResponse) response;


 httpServletResponse.setHeader("Access-Control-Allow-Origin", "*");


 httpServletResponse
 .setHeader(
 "Access-Control-Allow-Headers",
 "User-Agent,Origin,Cache-Control,Content-type,Date,Server,withCredentials,AccessToken");


 httpServletResponse.setHeader("Access-Control-Allow-Credentials",
 "true");


 httpServletResponse.setHeader("Access-Control-Allow-Methods",
 "GET, POST, PUT, DELETE, OPTIONS, HEAD");


 httpServletResponse.setHeader("Access-Control-Max-Age", "1209600");


 httpServletResponse.setHeader("Access-Control-Expose-Headers",
 "accesstoken");


 httpServletResponse.setHeader("Access-Control-Request-Headers",
 "accesstoken");


 httpServletResponse.setHeader("Expires", "-1");


 httpServletResponse.setHeader("Cache-Control", "no-cache");


 httpServletResponse.setHeader("pragma", "no-cache");


 chain.doFilter(request, response);


 }

 public void init(FilterConfig fConfig) throws ServletException {


 }


 public void destroy() {
 }


}




原创粉丝点击