定义了一个MyCrossOriginFilter.class,并在Access-Control-Allow-Headers 额外添加了允许"token",客户端ajax请求带有token时有个别接口不支持跨域了,请求不带token就支持跨域。什么原因呢?

另外,两个不同的Control都定义有相同的@At("/campaign/list") url,会影响跨域请求么?

public class MyCrossOriginFilter implements ActionFilter {

private static final Log log = Logs.get();

protected String origin;

protected String methods;

protected String headers;

protected String credentials;

public MyCrossOriginFilter() {

this("*", "GET, POST, PUT, DELETE, OPTIONS, PATCH", "Origin, Content-Type, Accept, Authorization, X-Requested-With,token", "true");

}

public MyCrossOriginFilter(String origin, String methods, String headers, String credentials) {

this.origin = origin;

this.methods = methods;

this.headers = headers;

this.credentials = credentials;

}

public View match(ActionContext ac) {

HttpServletResponse resp = ac.getResponse();

if (!Strings.isBlank(this.origin)) {

resp.setHeader("Access-Control-Allow-Origin", this.origin);

}

if (!Strings.isBlank(this.methods)) {

resp.setHeader("Access-Control-Allow-Methods", this.methods);

}

if (!Strings.isBlank(this.headers)) {

resp.setHeader("Access-Control-Allow-Headers", this.headers);

}

if (!Strings.isBlank(this.credentials)) {

resp.setHeader("Access-Control-Allow-Credentials", this.credentials);

}

if ("OPTIONS".equals(ac.getRequest().getMethod())) {

if (log.isDebugEnabled()) {

log.debugf("Feedback -- [%s] [%s] [%s] [%s]", new Object[]{this.origin, this.methods, this.headers, this.credentials});

}

return new VoidView();

}

return null;

}

}

@IocBean(name = "adsHome")

@Filters({ @By(type = MyActionFilter.class, args = {""})})

@At("ads/home")

public class HomeControl extends BaseController {

@At("/campaign/list")

@Ok("json")

@Filters({@By(type = MyCrossOriginFilter.class)})

public ReturnObject campaignList() {

ReturnObject result = new ReturnObject();

return result;

}

}

@IocBean(name = "adsReport")

@Filters({@By(type = MyActionFilter.class, args = {""})})

@At("ads/report")

public class ReportControl extends BaseController {

/**

* 分页列表

*

* @param search

* @return

*/

@At("/campaign/list")

@Ok("json")

@Filters({@By(type = MyCrossOriginFilter.class), @By(type = MyActionFilter.class, args = "")})

public ReturnObject listCampaignList(@Param("..") CampaignReport search) {

ReturnObject ro = new ReturnObject();

return ro;

}

}

authorization 传 就跨域_headers中添加允许token,客户端跨域请求问题相关推荐

  1. 数据结构:试设计一个算法,改造一个带表头结点的双向链表,所有结点的原有次序保持在各个结点的右链域rLink中,并利用左链域ILink把所有结点按照其值从小到大的顺序连接起来

    题目 试设计一个算法,改造一个带表头结点的双向链表,所有结点的原有次序保持在各个结点的右链域rLink中,并利用左链域ILink把所有结点按照其值从小到大的顺序连接起来 分析 Template < ...

  2. 在域控中添加office2013策略模板

    最近在进行一个 Office 的测试,涉及 Office 的管理模板,之前的版本如 Office 2010,我们可以通过组策略编辑器(GPMC)直接导入管理模板,操作很方便.如下图所示: 但是如果要部 ...

  3. apache字体文件跨域_CDN中,字体文件的跨域问题和解决

    @font-face是CSS3中的一个特性,可以把自己定义的Web字体嵌入到网页中,随着@font-face,越来越多的网页采用字体图标作为网页中的小图形. 比如Bootstrap就采用了Glyphi ...

  4. 微服务常见安全认证方案Session token cookie跨域

    HTTP 基本认证 HTTP Basic Authentication(HTTP 基本认证)是 HTTP 1.0 提出的一种认证机制,这个想必大家都很熟悉了,我不再赘述.HTTP 基本认证的过程如下: ...

  5. SpringMVC视图及如何在域对象中共享数据

    SpringMVC 回顾原生Servlet 获取请求参数 通过 Servlet API 获取 案例 通过控制器方法的形参获取请求参数 设置字符编码格式 CharacterEncodingFilter ...

  6. Python之向日志输出中添加上下文信息

    除了传递给日志记录函数的参数(如msg)外,有时候我们还想在日志输出中包含一些额外的上下文信息.比如,在一个网络应用中,可能希望在日志中记录客户端的特定信息,如:远程客户端的IP地址和用户名.这里我们 ...

  7. Exchange 2003 在多域环境中的部署

    相信大多数Exchange管理员对单域环境中的部署已经非常熟悉,包括单域单台或者多台Exchange服务器的部署,网络中也有很多此类的教程.但是关于如何在多域环境中部署Exchange的文章非常少,在 ...

  8. 内网渗透(十三)之内网信息收集-收集域环境中的基本信息

    系列文章第一章节之基础知识篇 内网渗透(一)之基础知识-内网渗透介绍和概述 内网渗透(二)之基础知识-工作组介绍 内网渗透(三)之基础知识-域环境的介绍和优点 内网渗透(四)之基础知识-搭建域环境 内 ...

  9. 驱动中添加参数进行调试和控制设备驱动

    1.在加载驱动的时候向驱动传入参数: 1.1传入字符型参数 static char *name; module_param(name, charp, 0); MODULE_PARM_DESC(name ...

最新文章

  1. 某程序员对比美团和阿里的卷文化区别:美团重过程,死抠没用细节;阿里更自由,注重结果!...
  2. python中使用函数编程的意义_总结Python编程中函数的使用要点
  3. 轻量级UIImageView分类缓存 库 AsyncImageView 使用
  4. Android之jni编译报错comparsion between signed and unsigned integer expressions解决办法
  5. 放学默示录Ⅰ:来!抠奖 移动游戏策划案
  6. 【ZOJ - 4024】Peak(模拟,水题)
  7. Python heapq模块
  8. Python字符串函数说明(菜鸟教程里面的)
  9. python解决字符串替换问题
  10. 2020 CPU性能排行天梯图
  11. java jdk 文档下载_Java帮助文档 JDK全系列 官方中英下载地址
  12. Host is not allowed to connect to this MySQL server错误的解决办法
  13. 麦当劳将携手逾100所职业院校提升就业能力;百胜中国一季度开设315家新店 | 美通企业日报
  14. 计算机学硕编码,怎么区分学硕和专硕代码
  15. 通过新版阿里ACE认证,实验操作题你来解一下
  16. 线程的学习,和线程的相关概念及多线程的学习指引
  17. jetson nano poe_IEEE 802.3bt工业级大功率POE供电专题
  18. 移动web开发+前端框架bootstrap相关笔记(二)
  19. 基于51单片机的DAC0832波形发生器
  20. 计算机外存断电会丢失吗,外储存器断电后信息会丢失吗

热门文章

  1. Linux系统调用getuid的简单分析
  2. AIX 系统下做 rootvg
  3. 从卓越工程的角度看微软中国开发团队的成长 (一)
  4. 先留住人,再发展人和吸引人
  5. html语言漂移属性,设置层的漂移_html/css_WEB-ITnose
  6. java web 许令波_Java Web——Web概述
  7. ue4小白人骨骼定义_【Blender】用SkinModifier+骨骼顶点“灵活”快速创建雕刻需要用的基本人物模型...
  8. python如何下载安装tensorflow_TensorFlow下载与安装
  9. 如何在请求转发的时候对url解码_Java技术分享:Forward和Redirect这两种转发方式的区别...
  10. 如何添加时区 java_如何在Windows(非Java)应用程序中使用Java时区ID?