jquery中的ajax处理跨域问题-之-----jsonp
ajax的跨域问题--jsonp,使用jsonp方法
(1)首先前端的请求方法,请求的数据格式是 jsonp 的格式
url:url ,//后台处理程序的url
data:{},//json格式的参数,
dataType:"jsonp",//跨域必须写出jsonp
jsonp:"callback",//回调参数
success:function(data){
}
});
注意:跨域的时候url地址一定要加 http://
//前端的请求方法:
$.ajax({ url:"http://192.168.0.131:8080/mooc/courseController/getcourse.do" ,//后台处理程序的url // data:{},//json格式的参数, dataType:"jsonp",//跨域必须写出jsonp jsonpcallback:"callback",//回调参数 success:function(data){ console.log(data.weatherinfo.city+"-1111111111111-"+data.weatherinfo.Radar) } }); }
(2)服务端返回的数据 也应该是 jsonp 的格式 如下:
//这是第三方的数据接口
String url = "http://www.weather.com.cn/adat/sk/101010100.html";
//请求方法
HttpClient client = new HttpClient();
HttpMethod method = new GetMethod(url);
//jsonp 的回调方法名字
String callback = request.getParameter("callback");
//第三方返回的 json 数据
String resut="";
try {
client.executeMethod(method);
resut = method.getResponseBodyAsString();
} catch (HttpException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 返回 jsonp 的格式
return callback+"("+resut+")";