jquery+jfinal实现跨域

为了解决ajax跨域问题,ajax代码和服务器端代码都要做改动,具体如下:
ajax代码

$.ajax({
    type: "POST",//发请求的方式
    url:"http://www.malaoshi.top/api/query/queryChannelByCache",//url链接地址
    data:{
    },
    dataType:"jsonp",//服务器返回来的数据类型,jsonp用于解决跨域问题
    jsonp: "callback",//向服务器发请求是会带上该参数
    error: function(request) {
        //处理代码
        //alert(1);
    },
    success: function(data) {
        //处理代码
        //alert(2);
        console.log(data);
        alert(JSON.stringify(data))
    }
});

在服务器端,跨域不能返回json字符串,而应该进行包装
jfinal框架代码

String callback = getPara("callback");//跨域时传入该参数
//此处做判断,有值表示跨域,为空表示服务内ajax请求
if(callback!=null && !"".equals(callback)){
                String jsonStr=JSONObject.toJSONString(jhm);
                String ret=callback+"("+jsonStr+")";//跨域时将json字符串包装上
                System.out.println(ret);
                renderJson(ret);
            }else{
                renderJson(jhm);
            }


另一篇文章:
http://www.malaoshi.top/show_1EFBsDUQSsi.html


原文出处:/show_1C7EAS9mAfA.html