|
導讀網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立... 網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立在超文本基礎之上的。超級文本標記語言之所以稱為超文本標記語言,是因為文本中包含了所謂“超級鏈接”點。 解決跨域請求的方法有:jsonp是利用頁面中的腳本標記的加載來實現跨域請求的;cors是通過響應頭中指定的源點與當前源點相匹配來實現跨域請求我們經常說的跨域請求是從一個域中的其他域名中請求資源。這里的其他域名不僅僅指域名,還包含很多內容比如協議,域名,端口的不相同,則這兩個域也會將被視為不同,所以接下來在文章中將和大家詳細介紹如何解決跨域請求的問題。 【推薦課程:JavaScript教程】
同源策略 在運行中我們有時會出錯是因為我們違反了同源策略,這是一種瀏覽器所實施的安全措施,用于限制具有不同來源的文檔之間的交互。頁面的來源由其協議,主機和端口號定義。具有相同來源的資源可以相互完全訪問。但是如果具有不相同的源將會拒絕訪問。 http://www.a.com/a.js http://www.b.com/a.js 這兩個之間就不可以互相訪問,因為域名的不相同 域名組成
如果上面兩個域名想互相訪問就需要跨域請求,一般情況下同源政策規定:允許跨源 寫入,而不允許跨源 讀取這意味著同源政策不會阻止將數據寫入,只會禁止他們從域中讀取數據, 或者對從其域收到的響應做任何事情。 跨域請求的方法 JSONP JSONP 稱為帶有填充的JavaScript對象表示,是一種通過利用HTML頁面中的腳本標記可以來加載來自不同來源的代碼來執實現跨域請求的方法。JSONP依賴于<script>標簽可以來自不同來源的事實。當瀏覽器解析<script>標記時,它將獲取腳本內容,并在當前頁面的上下文中執行它。通常,服務將返回HTML或以XML或JSON等數據格式表示的某些數據。但是,當向啟用JSONP的服務器發出請求時,它會返回一個腳本塊,該腳本塊在執行時會調用頁面指定的回調函數,并將實際數據作為參數提供 注意:它沒有相同的源點限制,即使在舊瀏覽器中也具有良好的兼容性但是JSONP只能用于執行跨域GET請求,服務器必須顯式支持JSONP請求。
CORS方法 為服務器提供了一種機制,告訴瀏覽器可以請求域A讀取來自域B的數據。通過在響應中包含一個新的 Access-Control-Allow-OriginHTTP頭來完成的,當瀏覽器收到來自跨源源的響應時,它將檢查CORS頭。如果響應頭中指定的源點與當前源點相匹配,則允許對響應進行讀訪問,否則就會報錯。 與jsonp相比,CORS具有以下優勢: 它不僅支持GET請求,還支持POST等其他請求 它可以使用XMLHttpRequest發送和接收數據,并具有更好的錯誤處理機制
總結:以上就是本篇文章的全部內容了,希望對大家學習有所幫助 以上就是如何解決跨域請求的問題的詳細內容,更多請關注php中文網其它相關文章! 網站建設是一個廣義的術語,涵蓋了許多不同的技能和學科中所使用的生產和維護的網站。 |
溫馨提示:喜歡本站的話,請收藏一下本站!