跨域:
浏览器对于javascript的同源策略的限制,例如a.cn下面的js不能调用b.cn中的js,对象或数据(因为a.cn和b.cn是不同域),所以跨域就出现了.
同源策略:
请求的url地址,必须与浏览器上的url地址处于同域上,也就是域名,端口,协议相同.
比如:我在本地上的域名是study.cn,请求另外一个域名一段数据
二、$http.get【实现跨域】
1. 在server端设置同意在其它域名下訪问
response.setHeader("Access-Control-Allow-Origin", "*"); //同意全部域名訪问
response.setHeader("Access-Control-Allow-Origin", "http://www.123.com"); //同意www.123.com訪问
2. AngularJS端使用$http.get()
三、$http.post【实现跨域】
1. 在server端设置同意在其它域名下訪问,及响应类型、响应头设置
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods","POST");
response.setHeader("Access-Control-Allow-Headers","x-requested-with,content-type");
2. AngularJS端使用$http.post(),同一时候设置请求头信息
$http.post('http://localhost/ajax/getAllIndustryCategoty.pt',{languageColumn:'name_eu'},{'Content-Type':'application/x-www-form-urlencoded'}).success(function(data){
$scope.industries = data;
});
Spring4.0以上
@CrossOrigin(origins="http://item.pinyougou.com",allowCredentials="true")
$http.get("http://cart.*****.com/cart/addGoodsToCartList?itemId="+itemId+"&num="+num,{'withCredentials':true});