Dubbox Rest 解决跨域问题

来源:互联网 发布:ios内购 元数据丢失 编辑:程序博客网 时间:2024/06/15 15:32

DubboxRest跨域问题解决

      a、ajax请求参数中,json格式需要标准格式,手动拼接引号 

var data = "{\"title\":\""+title+            "\",\"context\":\""+context+            "\",\"actionType\":"+actionType+            ",\"notifyType\":"+notifyType+            ",\"sendType\":"+sendType+            ",\"startTime\":\""+startTime+            "\",\"endTime\":\""+endTime+            "\",\"activeStartTime\":\""+activeStime+            "\",\"activeEndTime\":\""+activeEtime+            "\",\"weeks\":["+weeks+            "],\"time\":\""+time+            "\",\"fromType\":0}";


   b、Dubbox添加响应过滤器:

public class ControllFilter implements ContainerResponseFilter {    public void filter(ContainerRequestContext containerRequestContext, ContainerResponseContext containerResponseContext) throws IOException {        if (containerRequestContext.getMethod().equals("OPTIONS")) {            containerResponseContext.getHeaders().add("Access-Control-Allow-Origin", "*");            containerResponseContext.getHeaders().add("Access-Control-Allow-Headers", "Content-Type,x-requested-with,Authorization,Access-Control-Allow-Origin");            containerResponseContext.getHeaders().add("Access-Control-Allow-Methods", "POST, GET, OPTIONS");            containerResponseContext.getHeaders().add("Access-Control-Max-Age" ,"360");        }    }}

c、代码方法中给Response添加跨域代码

if (RpcContext.getContext().getResponse(HttpServletResponse.class) != null) {    RpcContext.getContext().getResponse(HttpServletResponse.class).addHeader("Access-Control-Allow-Origin","*");}



0 0
原创粉丝点击