CORS 跨域解决方案 有更新!

2019-04-29

跨域

  • 域名不同
  • 协议不同
  • 端口不同
    叫跨域

以前听说过JSONP,但怎么做忘记了,现在只掌握CORS

CORS 对比 JSONP

都能解决 Ajax直接请求普通文件存在跨域无权限访问的问题

  1. JSONP只能实现GET请求,而CORS支持所有类型的HTTP请求
  2. 使用CORS,开发者可以使用普通的XMLHttpRequest发起请求和获得数据,比起JSONP有更好的错误处理
  3. JSONP主要被老的浏览器支持,它们往往不支持CORS,而绝大多数现代浏览器都已经支持了CORS

具体操作


调用一个请求地址  {'withCredentials':true} 表示要设置cookie到服务器
http://localhost:9007/cart/addGoodsToCart.do/itemId='+$scope.sku.id+"&num="+$scope.num,{'withCredentials':true}

  • 到请求地址去设置http头信息

//设置跨域请求 设置允许的源
response.setHeader(“Access-Control-Allow-Origin”,“http://localhost:9004”);

  • //允许携带cookie

response.setHeader(“Access-Control-Allow-Credentials”,“true”);

在Spring 提供的跨域解决方案

  • 通过注解

@CrossOrigin(origins=“http://localhost:9105”,allowCredentials=“true”)
allowCredentials=“true” 默认为true 可以缺省

评论
发表评论
validate
取消