java跨域的含义

java跨域的含义
在说跨域之前,首先要了解一下same-origin policy,即同源策略。
same-origin policy简单的说,浏览器中访问的A网站中不能访问B网站中的数据,除非A,B网站是同源的,即对应的协议、域名、端口完全相同。否则是从不同origin得来的,不允许被访问。

这就产生了跨域的问题,浏览器拦截了服务器端返回的相应,而不是浏览器拦截了请求,想要能够跨域访问,需要浏览器和服务器同时支持跨域。

1.JSONP
通过在文档中嵌入一个script标记来从另一个域中返回数据。例如在页面中添加一个如下的script标记:

<script src="http://blog.ambergarden.com/someData?callback=some_func"/>

该标记会向http://blog.ambergarden.com/someData发送一个GET请求。在数据返回到客户端后,some_func()函数将会被调用。
该方法的缺点就是:
1.只支持Get,不支持Post;
2.本质上是脚本注入的方式,存在安全隐患;

2.CORS(跨域资源共享):
CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。它允许浏览器向跨源(协议 + 域名 + 端口)服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。

CORS需要浏览器和服务器同时支持。它的通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。
因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值