关于怎么解决跨域的问题到是多的,但是我看多了一直有一个疑问,列如下面的图,网上一找一堆,解释跨域问题
如果我有一个web项目部署在服务器上了,就是 http://store.company.com/dir/... 访问首页,这个时候我去调用第三方的接口,比如百度的
按照一般找到的同源规则来看,我去调用百度的接口是不是就跨域了?为什么还能成功呢?而且好多第三方开发的服务肯定和我不同源,应该也是跨域,但是能调用。
是我对跨域理解有问题?还是提供接口的第三方做了处理?
关于怎么解决跨域的问题到是多的,但是我看多了一直有一个疑问,列如下面的图,网上一找一堆,解释跨域问题
如果我有一个web项目部署在服务器上了,就是 http://store.company.com/dir/... 访问首页,这个时候我去调用第三方的接口,比如百度的
按照一般找到的同源规则来看,我去调用百度的接口是不是就跨域了?为什么还能成功呢?而且好多第三方开发的服务肯定和我不同源,应该也是跨域,但是能调用。
是我对跨域理解有问题?还是提供接口的第三方做了处理?
4 回答13.9k 阅读✓ 已解决
4 回答11.7k 阅读
5 回答2.6k 阅读
3 回答4.4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
1 回答4.1k 阅读
4 回答2k 阅读
首先要看你的访问方式,是否受跨域的限制,有些访问是不受限制的,比如页面里嵌入其他域的script,css都是允许的,主要受限的比如有ajax请求,详细的清单可以看这里:
https://developer.mozilla.org...
再来,如果你的访问是属于跨域限制范围内的,还要看服务器一方是否开放了跨域访问,当前,缺省是不开放的,有一个CORS规范对跨域访问留了一些后门,也就是可以通过一定的手段开放跨域访问,这时就要问服务器一方了(客户端这边可以不用做任何事)。
早年,还有一个特殊的技术手段JSONP来绕过跨域的限制,现在有了CORS,JSONP已经用的较少了。