解决浏览器访问跨源问题

只需要在后台代码返回数据中加入这几行代码就可以了

       我是在拦截器后面加的。



        //解决跨源问题
        response.setCharacterEncoding("UTF-8");
        response.setHeader("Access-Control-Allow-origin", "*");
        response.setHeader("Access-Control-Allow-Credentials", "true");
        response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
        response.setHeader("Access-Control-Allow-Headers", "Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With");
        


1 例:

public class TicketInterceptor extends HandlerInterceptorAdapter {
    protected final transient Logger log = Logger.getLogger("security");
    private static final String TICKET_H_KEY = "_kptkt";
    private static final String USER_H_KEY = "_kpusrId";
    @Autowired
    private TicketService ticketService;
    private List<String> excludedUrls;
    public List<String> getExcludedUrls(){
        return excludedUrls;
    }

    public void setExcludedUrls(List<String> excludedUrls){
        this.excludedUrls = excludedUrls;
    }
    
    @Override
    public boolean preHandle(HttpServletRequest request,
        HttpServletResponse response, Object handler) throws Exception
    {
        String url = request.getRequestURI();
        String ticket = request.getHeader(TICKET_H_KEY);
        String userId = request.getHeader(USER_H_KEY);
        log.debug(" post url:"+url+"----------ticket:"+ticket+" userId:"+userId);
        if(StringUtils.isEmpty(url)) return true;
        if(excludedUrls!=null){
             for (String exUrl : excludedUrls) {
                 if (url.endsWith(exUrl)){
                     return true;
                 }
             }
        }
        /*
        AiwResult result = new AiwResult(MessageCode.USR_NOT_LOGIN);
        ticketService =  SpringUtils.getBean(TicketService.class);
        boolean checkFlg = ticketService.checkUserAndTicket(userId, ticket);
        log.debug(userId+"--***************************************************==================== check ticket is:"+checkFlg);
        if(!checkFlg){
               response.setCharacterEncoding("UTF-8");
               response.setContentType("application/json;charset=UTF-8");
               response.getWriter().write(new Gson().toJson(result));
               //移除cookie
               CookieHelper.removeCookie(request, response, KpPageResParamNames.SystemParam.USER_TICKET_COOKIE);
               return false;
        }*/


        //解决跨源问题
        response.setCharacterEncoding("UTF-8");
        response.setHeader("Access-Control-Allow-origin", "*");
        response.setHeader("Access-Control-Allow-Credentials", "true");
        response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
        response.setHeader("Access-Control-Allow-Headers", "Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With");

        

        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request,
        HttpServletResponse response, Object handler, ModelAndView modelAndView)
        throws Exception
    {
        // TODO Auto-generated method stub

    }

    @Override
    public void afterCompletion(HttpServletRequest request,
        HttpServletResponse response, Object handler, Exception ex)
        throws Exception
    {
        // TODO Auto-generated method stub

    }
    
    
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值