①使用ajax的jsonp
dataType:"jsonp",//接受服务器的数据类型
jsonp:"callback",//用于服务器端的获取函数的参数
jsonpCallback:"callback_success",//函数名称
优点:只能请求get方式
②使用jQuery的jsonp插件
插件下载地址:https://github.com/jaubourg/jquery-jsonp
<script type="rext/javascript" src="js/jquery.jsonp.js"></script>
callbackParameter:"callback"
callback:"callback_success"
请求的为get请求和post请求,但从服务器获取的数据依然署jsonp格式
③使用cors
与前两种方式相比,前端代码和未处理跨域前一样,即普通的ajax请求,但服务器代码添加了一段解决跨域的代码
// 设置:Access-Control-Allow-Origin头,处理Session问题
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("P3P", "CP=CAO PSA OUR");
if (request.getHeader("Access-Control-Request-Method") != null && "OPTIONS".equals(request.getMethod())) {
response.addHeader("Access-Control-Allow-Methods", "POST,GET,TRACE,OPTIONS");
response.addHeader("Access-Control-Allow-Headers", "Content-Type,Origin,Accept");
response.addHeader("Access-Control-Max-Age", "120");
}