java 前后端跨域问题解决

前端页面部署在nginx 上 ,后端代码部署在服务器上 ,前端访问后台会出现跨域问题

新建一个过滤器

/** * 开放跨域权限 * * */@Slf4jpublic class testFilter implements Filter {

    public void init(FilterConfig filterConfig) throws ServletException {    }

    public void doFilter(ServletRequest var1, ServletResponse var2, FilterChain var3) throws IOException, ServletException{

        // System.out.println("执行过滤操作");

        HttpServletResponse response = (HttpServletResponse) var2;

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

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

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

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

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

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

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

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

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

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

        var3.doFilter(var1, response);    };

    public void destroy() {    }}

在配置文件中配置filter
@Beanpublic FilterRegistrationBean filterRegist() {    FilterRegistrationBean frBean = new FilterRegistrationBean();    frBean.setFilter(new testFilter());    frBean.addUrlPatterns("/*");

    return frBean;}

前端页面 ajax 中添加xhrFields: {  withCredentials: true},属性

原文地址:https://www.cnblogs.com/liangb/p/10943409.html

时间: 2024-08-01 09:33:14

java 前后端跨域问题解决的相关文章

用Nginx代理请求,处理前后端跨域

自从前端spa框架出现后,都是前后端分离开发了.我们在开发的时候难免会遇到跨域的问题.跨域这种问题解决的方法基本都是在服务端实现的.以java为例,我知道的有3种方法处理跨域: 1.使用 @CrossOrigin 注解对每一个接口进行跨域处理,缺点是比较麻烦 @CrossOrigin(origins ="*") @RequestMapping(value = "/test", method = RequestMethod.GET) public String tes

简单设置,解决使用webpack前后端跨域发送cookie的问题

最近用vue来做项目,用webpack来做前端自动化构建.webpack-dev-server会在本地搭建一个服务器,在和后端调试的时候,就会涉及到跨域的问题. 刚开始时,没有用vue-cli来构建项目,而是参考了github上的vue-vueRouter-webpack来构建.看网上的资料,vue-cli可以通过配置代理来解决跨域的问题: proxyTable: { '/list': { target: 'http://api.xxxxxxxx.com', changeOrigin: true

cors跨域资源共享---解决前后端跨域问题

Cross-Origin Resource Sharing (CORS) ,定义了在跨域访问资源时浏览器和服务器之间如何通信.CORS背后的基本思想是使用自定义的HTTP头部允许浏览器和服务器相互了解对方,从而决定请求或响应成功与否. 解决方法: ①后端加响应头 header("Access-Control-Allow-Origin: *"); header('Access-Control-Allow-Credentials: true'); header('Access-Contro

springboot 解决前后端跨域

项目web层创建文件夹名字随便 和controller平级 在文件夹下创建类 名字随意  我是在tools文件夹下创建了一个叫CorsConfig的类,代码如下 package com.huyuqiang.web.tools; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframew

springboot2.1.3 配置前后端跨域问题

很简单,创建一个配置类即可,如下: package com.app.gateway.common.config; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebM

IE8 jquery跨域问题解决

1.IE8 jquery跨域问题解决: 加下面code 源地址: https://github.com/dkastner/jquery.iecors/blob/master/jquery.iecors.js (function( jQuery ) { // Create the request object // (This is still attached to ajaxSettings for backward compatibility) jQuery.ajaxSettings.xdr

FastAdmin 关于跨域问题解决

FastAdmin 关于跨域问题解决 之前很久之前收集到社区的问题. https://forum.fastadmin.net/thread/277 今天又有人问到,无法打开,估计是网络问题. 以下为完整配置 1 # # CORS header support # # One way to use this is by placing it into a file called "cors_support" # under your Nginx configuration directo

odoo Controller接口开发 POST请求的跨域问题解决方法

odoo Controller接口开发 POST请求的跨域问题解决方法 1.odoo Controller接口开发,前端在请求的时候会发生跨域问题,报错信息如下:Function declared as capable of handling request of type 'json' but called with a request of type 'http' 2.解决方法如下: odoo官网给的参数解释: cors – The Access-Control-Allow-Origin c

web项目中的跨域问题解决方法

一种是JSONP 一种是 CORS. 在客户端Javascript调用服务端接口的时候,如果需要支持跨域的话,需要服务端支持. JSONP的方式就是服务端对返回的值进行回调函数包装,他的优点是支持众多的浏览器, 缺点是仅支持Get的方式对服务端请求. 另一种主流的跨域方案是CORS,他仅需要服务端在返回数据的时候在相应头中加入标识信息.这种方式非常简便.唯一的缺点是需要浏览器的支持,一些较老的浏览器可能不支持CORS特性. 跨域支持是创建WebService时应该考虑的一个功能点,文中是使用Se