跨域ajax post json 403,ajax post 请求json跨域怎么解决

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

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;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值