关于跨域,我调用第三方接口是跨域吗?

关于怎么解决跨域的问题到是多的,但是我看多了一直有一个疑问,列如下面的图,网上一找一堆,解释跨域问题

图片描述

如果我有一个web项目部署在服务器上了,就是 http://store.company.com/dir/... 访问首页,这个时候我去调用第三方的接口,比如百度的

图片描述

按照一般找到的同源规则来看,我去调用百度的接口是不是就跨域了?为什么还能成功呢?而且好多第三方开发的服务肯定和我不同源,应该也是跨域,但是能调用。

是我对跨域理解有问题?还是提供接口的第三方做了处理?

阅读 7.7k
2 个回答

首先要看你的访问方式,是否受跨域的限制,有些访问是不受限制的,比如页面里嵌入其他域的script,css都是允许的,主要受限的比如有ajax请求,详细的清单可以看这里:

https://developer.mozilla.org...

再来,如果你的访问是属于跨域限制范围内的,还要看服务器一方是否开放了跨域访问,当前,缺省是不开放的,有一个CORS规范对跨域访问留了一些后门,也就是可以通过一定的手段开放跨域访问,这时就要问服务器一方了(客户端这边可以不用做任何事)。

早年,还有一个特殊的技术手段JSONP来绕过跨域的限制,现在有了CORS,JSONP已经用的较少了。

跨域了。但是接口提供方做了处理。
处理方式是
CORS

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏