java中常用的幾種跨域方式


默認情況下服務端是不允許ajax跨域訪問的,需要在response頭設置相應的跨域權限

在后台,常用的配置跨域有兩種方式

1、配置Filter過濾器(攔截器也可以):

@WebFilter("/test")
public class CorsFilter implements Filter {

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse)servletResponse;
        //設置允許跨域訪問的服務域名,*號表示允許所有域訪問
        //resp.setHeader("Access-Control-Allow-Origin", "www.baidu.com");
        response.setHeader("Access-Control-Allow-Origin", "*");
        //設置允許跨域的請求方法
        response.setHeader("Access-Control-Allow-Methods", "GET,POST,PUT,DELETE");
        //放行
        filterChain.doFilter(servletRequest, servletResponse);
    }
}

2、使用@CorsOrigin()注解:

@CorsOrigin()注解可以標注在類上,也可以標注在方法上。在controller類中,在類上標注@CorsOrigin注解表示當前類下的所有方法都支持跨域訪問,如果標注在方法上,表示只有當前方法支持跨域訪問。這個注解有origins和methods兩個屬性,origins屬性表示允許跨域訪問的服務域名,*號表示所有域名都支持,methods是一個RequestMethod對象數組,表示允許跨域的請求方法。

@RestController
@CrossOrigin(origins = "*", methods = {RequestMethod.GET, RequestMethod.POST})
public class TestController {

    @GetMapping("/hello")
    public String hello(){
        return "hello spring";
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM