乙個頁面發ajax請求到後端介面,這個後端介面重定向了另外乙個網域名稱的位址;此時會出現跨域問題。
ajax呼叫瀏覽器元件發起的請求和瀏覽器直接發起的請求有一定區別。
1)瀏覽器可以通過返回的http狀態進行相應的操作,如訪問乙個頁面,此頁面重定向時,瀏覽器可以獲取到重定向後的url然後進行轉向。
2)對於ajax,ajax的目的就是無重新整理的,所以對於伺服器端進行了重定向時,ajax會獲取到重定向狀態值3xx和重定向url,然後再獲取重定向的頁面執行完後輸出到客戶端的html**,並且返回200狀態。
上面的場景:
如果是瀏覽器傳送輕輕到後端介面,後端介面重定向的話是給瀏覽器乙個302的標示,並且給乙個url;瀏覽器拿到標示後會把位址列的url換成後端返回的url,完成重定向動作。
如果是ajax的話,請求後端介面,後端返回302和乙個url;那麼ajax會根據htpp的code嗎做出相對應的動作。接受到的是302那麼ajax會再次發起乙個請求,去請求服務端302返回的url;那麼此時就跨域了。
解決方式是ajax在第一次得到相應處理後需要js做一次location.href跳轉。目的是讓瀏覽器去請求重定向的介面而不是ajax.
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 請求屬於同一網域...