NutzCN Logo
问答 跨域问题,我使用了@Filters({@By(type=CrossOriginFilter.class)})无效= =
发布于 2467天前 作者 sky54321 2585 次浏览 复制 上一个帖子 下一个帖子
标签:
 @Filters({@By(type=CrossOriginFilter.class)})
    @Ok("forward:/login.html")
    public String test(){
        return  "111";
    }

这个是服务端代码

$('#myIframe').load('http://192.168.0.113:8080/user/test')

这个是访问代码

index.html:1 Failed to load http://192.168.0.113:8080/user/test: Redirect from 'http://192.168.0.113:8080/user/test' to 'http://192.168.0.113:8080/login.html;JSESSIONID=1edefded-1f37-465f-b562-1e69b2bb6f23' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8020' is therefore not allowed access.

这个是错误信息

6 回复

debug一下CrossOriginFilter,看看有没有进入

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();
    } else {
        return null;
    }
}

我在这里方法里面打了断点没能进入

加多一个方法试试, 映射路径与原方法一样

    @Filters({@By(type=CrossOriginFilter.class)})
    @At(value="/test", methods="OPTIONS")
    public void mock_test(){}

插入代码用 "插入代码" 按钮啊!!!

加在Controller里面是吗?

@Filters({@By(type=CrossOriginFilter.class)})
@At(value="/test", methods="OPTIONS")
public void mock_test(){}


@Filters({@By(type=CrossOriginFilter.class)})
@Ok("forward:/login.html")
public String test(){
    return  "111";
}

插入代码按钮是?我用的idea我直接copy进去的,用的路径跟原来的一样访问的是原来的方法。

等等, 你的方法没加@At啊啊啊啊

收藏贴 MARK

添加回复
请先登陆
回到顶部