什麼是瀏覽器的跨域訪問操作,js如何實現?

2021-10-25 10:28:03 字數 682 閱讀 2240

跨域訪問操作

在頁面中使用js訪問其他**的資料時,就會出現跨域問題,比如在**中使用ajax請求其他**的天氣、快遞或者其他資料

如何實現

window.postmessage

window.postmessage是html5定義的乙個很新的方法,這個方法可以很方便地跨window通訊。由於它是乙個很新的方法,所以在很舊和比較舊的瀏覽器中都無法使用。

借助於伺服器**來跨域(正向**、反向**)

正向**: 我借助與我的伺服器, 像資料伺服器傳送資料, 我的伺服器只需要向資料伺服器傳送get請求即可

反向**: 與正向**類似, 但是不借助於指令碼, 而是直接使用 伺服器對映 url.

例如: 我們的 url 是

資料伺服器的 url 是

在 apache 配置乙個 url 的**對映

理論上使用 url: /api 是在**根目錄下找 api 資料夾

但是現在 apache 提供乙個對映的功能, 將 /api 對映到

有了這個對映, 那麼 訪問 就可以利用 /api/login來訪問了.

反向**的好處:

不僅實現了跨域( 伺服器幫我們實現的 ), 而且訪問資料的時候就好像在訪問本地伺服器一樣.如此, 諸如 cookie 等資料就可以直接獲得了.

瀏覽器跨域訪問WebApi

在預設情況下這兩個網域名稱屬於兩個不同的域,他們之間的互動存在跨域的問題,但因為他們都同屬於乙個二級網域名稱下,所以通過簡單的設定就能實現跨域行為,但是考慮到實際生產環境中往往會出現兩個網域名稱 完全不同的情況,所以這裡不考慮這種特殊的情況,使用更通用的方法來解決跨域的問題。首先在webapi上有如...

瀏覽器訪問跨域問題

專案中遇到乙個問題 用ajax來獲取資料,但返回的status為0,從瀏覽器的列印看應該是跨域問題 origin file has been blocked by cors policy response to preflight request does not pass access contr...

瀏覽器跨域訪問WebApi

在預設情況下這兩個網域名稱屬於兩個不同的域,他們之間的互動存在跨域的問題,但因為他們都同屬於乙個二級網域名稱下,所以通過簡單的設定就能實現跨域行為,但是考慮到實際生產環境中往往會出現兩個網域名稱 完全不同的情況,所以這裡不考慮這種特殊的情況,使用更通用的方法來解決跨域的問題。首先在webapi上有如...