鍍金池/ 問答/HTML/ 關(guān)于跨域,我調(diào)用第三方接口是跨域嗎?

關(guān)于跨域,我調(diào)用第三方接口是跨域嗎?

關(guān)于怎么解決跨域的問題到是多的,但是我看多了一直有一個疑問,列如下面的圖,網(wǎng)上一找一堆,解釋跨域問題

圖片描述

如果我有一個web項目部署在服務(wù)器上了,就是 http://store.company.com/dir/... 訪問首頁,這個時候我去調(diào)用第三方的接口,比如百度的

圖片描述

按照一般找到的同源規(guī)則來看,我去調(diào)用百度的接口是不是就跨域了?為什么還能成功呢?而且好多第三方開發(fā)的服務(wù)肯定和我不同源,應(yīng)該也是跨域,但是能調(diào)用。

是我對跨域理解有問題?還是提供接口的第三方做了處理?

回答
編輯回答
情皺

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

2017年9月14日 09:49
編輯回答
蟲児飛

首先要看你的訪問方式,是否受跨域的限制,有些訪問是不受限制的,比如頁面里嵌入其他域的script,css都是允許的,主要受限的比如有ajax請求,詳細的清單可以看這里:

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

再來,如果你的訪問是屬于跨域限制范圍內(nèi)的,還要看服務(wù)器一方是否開放了跨域訪問,當前,缺省是不開放的,有一個CORS規(guī)范對跨域訪問留了一些后門,也就是可以通過一定的手段開放跨域訪問,這時就要問服務(wù)器一方了(客戶端這邊可以不用做任何事)。

早年,還有一個特殊的技術(shù)手段JSONP來繞過跨域的限制,現(xiàn)在有了CORS,JSONP已經(jīng)用的較少了。

2017年4月4日 11:55