为了解决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