1、當前網域名稱的檔案,通過ajax向其它網域名稱的的主機請求資料時,瀏覽器就會拒絕這個傳送,在瀏覽器這邊就給阻止了。(瀏覽器同源策略)
在瀏覽器中直接輸入介面的請求位址,並沒有產生跨域請求的問題。瀏覽器 url位址 上就是對方的網域名稱,沒有跨什麼域。
所以瀏覽器上直接輸入請求位址是可以正常請求資料的。
注: 跨域限制是瀏覽器行為(針對ajax的行為),不是伺服器行為
跨域的判定流程:
(感悟): 有點類似門衛的作用,是公司的人(同源)可以直接進去,不是公司人(不同源)的需要和公司負責人(伺服器)請示下是不是可以讓進去
2、https協議下網頁,標籤中src資源也必須是https協議,不然會出現載入資源解決的情況。(這個是不是後端做了限制還不清楚)
3、跨域問題,也可以純後端處理,前端完全不用做什麼。比如請求第三方介面(天氣、新聞),可以直接使用ajax請求資料。而不用解決跨域請求的問題。
4、跨域請求出現 options 請求的問題及解決方法:
5、如果服務端允許跨域,前端是可以直接跨域請求的(不知道是不是http協議改變了,以前好像不可以的)。
說明:標準是要求瀏覽器必須先以 options 請求方式傳送乙個預請求(preflight request),從而獲知伺服器端對跨源請求所支援 http 方法。
在確認伺服器允許該跨源請求的情況下,以實際的 http 請求方法傳送那個真正的請求。
跨域解決方案
參考:擴充套件閱讀
如果在生產線不需要跨域;只是在開發的時候,因為前後端分離導致前後端不在乙個域中而引起的跨域訪問問題直接對瀏覽器進行設定。
推薦跨域解決方案:谷歌瀏覽器 可以直接設定瀏覽器解決跨域問題。參考:
ajax跨域問題
ajax跨域和js的跨域通訊 cross the site 的幾種解決方案 1.什麼引起了ajax跨域不能的問題 ajax本身實際上是通過xmlhttprequest物件來進行資料的互動,而瀏覽器出於安全考慮,不允許js 進行跨域操作,所以會警告。2.有什麼完美的解決方案麼?沒有。解決方案有不少,但...
Ajax跨域問題
跨域是指跨網域名稱的訪問,以下情況都屬於跨域 跨域原因說明 示例網域名稱不同 www.jd.com與www.taobao.com 網域名稱相同,埠不同 www.jd.com 8080與www.jd.com 8081 二級網域名稱不同 item.jd.com與miaosha.jd.com 如果網域名稱...
ajax跨域問題
首先什麼是跨域,產生跨域的條件是什麼。在軟體的開發過程中,我們可能會遇到這這樣的問題,瀏覽器會報這樣的錯誤。這種其實就是跨域問題,但是,是什麼原因造成的這個問題呢,造成這個問題有三種方式,如下 請求的埠和當前伺服器不同 例如localhost 8080和localhost 8081 請求屬於同一網域...