ajax 实现跨域请求

版权声明:本文为博主原创文章,未经博主允许不得转载。 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.控制台打印结果

猜你喜欢

转载自blog.csdn.net/buyaopingbixiazai/article/details/83626428