【跨域】一个拦截器解决api跨域问题

前后端分离,跨域必须要解决的问题

在JFinal框架中,一个拦截器 解决,上代码

CORSInterceptor类

package com.choxsu.common.interceptor;

import com.jfinal.aop.Interceptor;
import com.jfinal.aop.Invocation;

import javax.servlet.http.HttpServletResponse;

/**
 * @author choxsu
 * @date 2018/8/24 0024
 */
public class CORSInterceptor implements Interceptor {

    @Override
    public void intercept(Invocation inv) {
        inv.invoke();
        HttpServletResponse response = inv.getController().getResponse();
        response.addHeader("Access-Control-Allow-Origin", "*");
    }
}

使用 ;在apiController中加上。下面代码,也可以作为全局的,也可以作为路由级别,也可以用在单类上,非常灵活方便使用

/**
 * @author choxsu
 * @date 2018/8/24 0024
 */
@Before(CORSInterceptor.class)
public class ApiController extends BaseController {


。。。

完了

代码要精简^_^

评论区

JFinal

2018-08-24 20:45

跨域的需求越来越多了,这是目前最简洁的实现代码了,感谢你的分享,点赞、收藏

或是的话

2018-08-25 12:50

没有安全问题吗?

suxiaoqiuking

2018-08-27 09:52

@或是的话 放开跨域肯定有安全风险,对外接口一般才会放开跨域,对外接口肯定就有一定安全验证

欧阳粤

2018-08-30 14:52

post 请求跨域呢 怎么解决

suxiaoqiuking

2018-08-31 10:44

@欧阳粤 跨域和方法没关系

JFinal9527

2018-08-31 15:12

cors感觉主要还是要注意安全问题,还有OPTIONS请求需要过滤一下,不然会执行2次

suxiaoqiuking

2018-09-13 10:29

@JFinal9527 这个可以配置 之前我在nginx做过options过滤,但在这里就忽略了,以后加上

suxiaoqiuking

2018-09-13 10:29

@JFinal9527 这个可以配置 之前我在nginx做过options过滤,但在这里就忽略了,以后加上

李小小小

2018-10-11 11:16

@JFinal9527 请问一下,如何过滤OPTIONS请求?

青春范star

2019-12-28 19:29

已采纳,谢谢

热门分享

扫码入社