博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Day57跨域问题**
阅读量:791 次
发布时间:2019-03-25

本文共 1394 字,大约阅读时间需要 4 分钟。

跨域问题

  • (1)什么是跨域
    当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域
  • (2)为什么会出现跨域
    出于浏览器的同源策略限制
    同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能
    同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。
    http://localhost:8001
    http://localhost:8002
    所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)

在这里插入图片描述

跨域问题解决办法

  • (1)直接采用SpringBoot的注解@CrossOrigin
    Controller层在需要跨域的类或者方法上加上该注解即可
  • (2)采用过滤器的方式

@CrossOrigin

@CrossOrigin //本类所有的方法都支持跨域请求,浏览器不会拦截跨域的请求public class UserController

Filter

javax.servlet
javax.servlet-api
3.0.1
provided
@Component@Slf4jpublic 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", "PUT,POST, GET, OPTIONS, DELETE, HEAD"); response.setHeader("Access-Control-Max-Age", "3600"); response.setHeader("Access-Control-Allow-Headers", "access-control-allow-origin, authority, content-type, version-info, X-Requested-With"); chain.doFilter(req, res); log.info("filter"); } public void init(FilterConfig filterConfig) {
} public void destroy() {
}}

转载地址:http://yxsyk.baihongyu.com/

你可能感兴趣的文章