解决浏览器访问跨源问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/liu1765686161/article/details/51149870

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

       我是在拦截器后面加的。



        //解决跨源问题
        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

    }
    
    
}


猜你喜欢

转载自blog.csdn.net/liu1765686161/article/details/51149870
今日推荐