CORS跨域请求解决方案

原理部分:   它的请求和响应是两次的 
        预请求 ——》 预响应  判断是否可以连接
        然后是真正的请求和响应数据 

域:主机名
    跨域:    在一个项目的页面上访问另一个项目的后台,就叫跨域
        只要访问的协议,主机,端口有一个不一样,就是跨域
        默认JS是不能进行跨域请求,因为不安全。
        
    JSONP:JS和后台进行都修改才可以。
    
    
**使用方法:    在Controller层 方法内添加这个两句话
    
    http://localhost:9105这个服务器 想要访问本服务器,这里意思是允许它访问 ,如果想要操作和携带cookie则需要后面一句
    http://localhost:9105可以用* 代替 表示允许所以服务器访问,但是如果携带操作cookie则需要明确地址
    
    response.setHeader("Access-Control-Allow-Origin", "http://localhost:9105");  //
    
    
    response.setHeader("Access-Control-Allow-Credentials", "true");
    
    
//如果真的要操作cookie 则在    http://localhost:9105 需要添加{'withCredentials':true} 允许操作cookie ,不操作cookie不需要第二句和这个
    
    $scope.addToCart=function(){
        $http.get('http://localhost:9107/cart/addGoodsToCartList.do?itemId='+ $scope.sku.id +'&num='+$scope.num,{'withCredentials':true}).success(
    function(response){
.......
        }
        );
}


//使用springmcv注解 配置:
        @CrossOrigin(origins="http://localhost:9105",allowCredentials="true")

        
        js部分还是要加上{'withCredentials':true}
        
        
        
        
        实例:
        
        静态化页面走购物车
        
        
        
        //添加商品到购物车
    $scope.addToCart=function(){
        $http.get('http://localhost:9107/cart/addGoodsToCartList.do?itemId='
            + $scope.sku.id +'&num='+$scope.num,{'withCredentials':true}).success(
            function(response){
                if(response.success){
                    location.href='http://localhost:9107/cart.html';//跳转到购
                    物车页面
                }else{
                    alert(response.message);
                }
            }
        );
    }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值