java web应用下跨域3招

一、设置服务器端,让ajax能直接调用

服务器端设置 tomcat 设置为例: 在web.xml中添加如下过滤器



 <filter>

   <filter-name>CorsFilter</filter-name>

   <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>

 </filter>

 <filter-mapping>

   <filter-name>CorsFilter</filter-name>

   <url-pattern>/*</url-pattern>

 </filter-mapping>

二、使用jsonp方式进行

 

三、使用自定义过滤器方式进行

Spring MVC Rest 支持CORS

 

新建cors filter文件,

复制代码
package cn.ac.iscas.pebble.ufe.tools;



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;

import org.springframework.stereotype.Component;



@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() {}



}
复制代码
然后在web.xml里添加如下内容:
复制代码
<filter>

        <filter-name>cors</filter-name>

        <filter-class>cn.ac.iscas.pebble.ufe.tools.SimpleCORSFilter</filter-class>

    </filter>

    

    <filter-mapping>

        <filter-name>cors</filter-name>

        <url-pattern>/*</url-pattern>

    </filter-mapping>
复制代码

你可能感兴趣的:(Java Web)