跨域配置
1.配置如下
我用的框架是spring mvc
以下配置我写在applicationContext-mvc.xml配置文件里
<!-- 拦截器 -->
<mvc:interceptors>
<!-- 登录拦截器 -->
<mvc:interceptor>
<mvc:mapping path="/**"/>
<mvc:exclude-mapping path="/api/userInfo/login*"/>
<bean class="com.sharedprint.interceptor.LoginInterceptor"/>
</mvc:interceptor>
<!-- 操作日志保存拦截器 -->
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="com.sharedprint.interceptor.OperationLogInterceptor"/>
</mvc:interceptor>
<!-- 跨域拦截器 -->
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="com.sharedprint.interceptor.CrossInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
2.具体代码如下所示
public class CrossInterceptor implements HandlerInterceptor {
@Override
public void afterCompletion(HttpServletRequest arg0, HttpServletResponse response, Object arg2, Exception arg3)
throws Exception {
}
@Override
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
throws Exception {
}
/**
* 进入pageList验证token
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {
System.out.println("CrossInterceptor..跨域问题2");
String userId = request.getHeader("userId");
String token = request.getHeader("token");
System.out.println("CrossInterceptor..token=" + token + "..userId=" + userId);
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Allow-Headers", "token,userId");
//response.setHeader("Access-Control-Allow-Credentials", "true");
return true;
}
无需其它操作,按我的配置操作即可,本人亲测是没问题