只需要在后台代码返回数据中加入这几行代码就可以了
我是在拦截器后面加的。
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
}
}