前后端访问解决跨域问题

前端访问后端因为协议(http/https)、地址、端口号任意一个或多个不同会导致前后端数据和cookie无法发送接收。

解决办法:

1.解决跨域无法接收数据和cookie问题

后端开发过滤器

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebFilter("/*")
public class CORSFilter implements Filter {
    public void destroy() {
    }

    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        HttpServletResponse response = (HttpServletResponse) resp;
        //解决跨域访问的数据问题
        HttpServletRequest request = (HttpServletRequest) req;
        String origin = request.getHeader("Origin"); 
        response.setHeader("Access-Control-Allow-Origin",origin);
        //解决跨域访问的 cookie问题的(此时只解决了后端发送cookie的问题,前端还要配置解决跨域接受cookie的问题)
        response.setHeader("Access-Control-Allow-Credentials", "true");

        chain.doFilter(req, resp);

    }

    public void init(FilterConfig config) throws ServletException {

    }

}

前端ajax请求加xhrFields参数

表示前端接收保存后端传过来的cookie,准备下次访问带回给服务端。

猜你喜欢

转载自blog.csdn.net/weixin_42210904/article/details/107604526