跨域意思

跨域(Cross-domain)通常指的是在計算機科學中,特別是在Web開發和網路通信領域,跨越不同域(Domain)之間的操作或通信。這裡的「域」可以指以下幾種情況:

  1. 域名域(Domain Name Domain):不同網站通常有不同的域名,例如example.com和example.net是兩個不同的域。跨域問題可能涉及到從一個網站向另一個網站的資源(如圖像、腳本、樣式表、框架、XML、JSON、WebSocket等)的請求。

  2. 子域(Subdomain):即使是在同一個頂級域名下,子域之間的通信也可能被視為跨域。例如,www.example.com和api.example.com是同一個頂級域名下的不同子域。

  3. 協定域(Protocol Domain):HTTP和HTTPS是不同的協定,因此從一個網頁載入另一個使用不同協定(如HTTPS)的網頁或資源也被認為是跨域。

  4. 埠域(Port Domain):通常,Web伺服器默認使用埠80(HTTP)或443(HTTPS),但如果一個伺服器使用的是非默認埠,那麼即使是同一主機和域名,也可能被視為跨域。

跨域資源共享(CORS,Cross-Origin Resource Sharing)是現代瀏覽器的一種機制,用於限制從一個源(origin)到另一個源的「不安全」請求。這是為了防止跨站腳本攻擊(XSS)和其他安全問題。CORS允許伺服器聲明它支持哪些源的請求,以及這些請求應該如何被處理。

在JavaScript中,跨域問題通常涉及到XMLHttpRequest(XHR)或Fetch API的使用。為了解決跨域問題,開發者可以使用CORS頭信息,代理伺服器,JSONP(JSON with Padding)或者其他一些技術。