版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/buyaopingbixiazai/article/details/83626428
使用jsonp方式跨域请求,首先是在ajax哪里设置服务器返回类型,然后在创建回调函数,后台(我用的是java)返回jaonp格式的数据,jsonp格式其实就是 回调函数+(json)。具体步骤如下
1.前台ajax方法
function crossDomain(){
$.ajax({
type : 'post',
url : "http://192.xxx:8088/mobile/smartSecurityInterfaceBLH_searchAirportInfo.do?callback=myCallBack",
dataType : 'jsonp',//指定服务器返回的数据类型
data : null,
success: function(data){
//这里的代码不会运行
alert(111);
}
})
}
//回调函数
function myCallBack(data){
debugger;
console.info(data);
}
2.服务器返回数据格式 callback (json)
Map<String, Object> map = new LinkedHashMap<String, Object>();
map.put(STATUS_CODE, SUCCESS_KEY);
map.put(STATUS_INFO, SUCCESS_VALUE);
map.put("searchAirport", airport);
JSONArray jsonMap = JSONArray.fromObject(map);
//jsonp格式
String jsonp = callback +"("+jsonMap.toString()+");";
jsonp数据格式展示:
myCallBack(
[
{
statusCode: "1",
statusInfo: "接口查询成功",
searchAirport: "LJG"
}
]
)
json格式是下面这样的
[
{
statusCode: "1",
statusInfo: "接口查询成功",
searchAirport: "LJG"
}
]
3.控制台打印结果