SpringMVC JSONP JSON支持

Posted 杭州糊涂虫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringMVC JSONP JSON支持相关的知识,希望对你有一定的参考价值。

1.ajax端

           

$.ajax({
                    type: "post",
                    dataType: "jsonp",
                    //传递给请求处理程序,用以获得jsonp回调函数名的参数名(默认为:callback)
                    jsonp: "callback",
                    //自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
                    jsonpCallback:"success_jsonpcallback",
                    url: "http://localhost:8080/vdt/json/queryMetadata.json",
                    success: function (msg) {
                        alert("succes");
                    },
                    error:function(e){
                        alert("error");
                    }
                });

2.java端

       

@RequestMapping("/queryMetadata")
    @ResponseBody
    public Object queryMetadata(String id,String callback) {
        MetaDataBeanVo metaDataBeanVo= mampManager.getMetaDataSource("f4050e690a62402a8c87668eb10ed425,f4050e690a62402a8c87668eb10ed425");
        List<MetaDataBeanVo> list=new ArrayList<MetaDataBeanVo>();
        list.add(metaDataBeanVo);
        GenericResult gr = new GenericResult();
        gr.setResult(list);
        gr.setMessage("查询元数据");
        gr.setSuccess(true);
        gr.setErrorCode("");

        //兼容jsonp 和json模式
        if(StringUtils.isEmpty(callback)){
            return gr;
        }else{
            MappingJacksonValue mappingJacksonValue=new MappingJacksonValue(gr);
            mappingJacksonValue.setJsonpFunction(callback);
            return mappingJacksonValue;
        }
    }

 

以上是关于SpringMVC JSONP JSON支持的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot多跨域请求的支持(JSONP)

json和jsonp的使用区别

如何在 node.js + Express 中同时支持 json 和 jsonp 响应?

json跨域解决方案-jsonp

Json与JsonP

springmvc用@crossorigin解决跨域 ajax怎么写