CORS这是现代浏览器支持跨域资源请求的一种方式。
当你使用XMLHttpRequest发送请求时,浏览器发现该请求不符合同源策略,会给该请求加一个请求头:Origin,后台进行一系列处理,如果确定接受请求则在返回结果中加入一个响应头:Access-Control-Allow-Origin;浏览器判断该相应头中是否包含Origin的值,如果有则浏览器会处理响应,我们就可以拿到响应数据,如果不包含浏览器直接驳回,这时我们无法拿到响应数据。
HTML代码
$.ajax({
url : "http://192.168.77.64:8080/multiVersion/searchSoftInfoBySoftAndArea",
type : "get",
async : true,
data : {softId:"GCL2013",areaId:11},
success : function(data){
alert(data);
}
});
服务端代码
/**
* 解决跨域问题
*
* @param request
* @param response
*/
public void addAccessAllowOrigin(HttpServletRequest request, HttpServletResponse response){
String origin = request.getHeader("origin");//获取从哪个域名发送的ajax请求本页面或者是直接访问
if (MVConstString.ACCESS_ALLOW_ORIGIN.contains(origin)) {
//在允许的域名列表里面才添加Access-Control-Allow-Origin响应头
response.addHeader("Access-Control-Allow-Origin", origin);
}
}