前端開發——跨域解決方案

什麼情況下會遇到跨域的問題?

前端做數據交互,比如在數據獲取的時候經常會遇到跨域的問題。

  1. 跨域
    跨域是指一個域下的文檔或腳本試圖請求另一個域下的資源。
    廣義跨域有以下的情況:
    (1) 資源跳轉:a鏈接,表單提交;
    (2) 資源嵌入:link標籤、script標籤、img標籤等dom標籤,還有樣式中background:url()等文件外鏈;
    (3) 腳本請求:js發起的ajax請求、dom和js對象的跨域操作。
    我們經常所遇到的跨域往往是狹義跨域,即由瀏覽器同源策略限制的一類請求場景
    同源策略:同源指“協議+域名+端口”三者全部相同;是瀏覽器最核心最基本的安全功能,如果缺少了同源策略,那麼瀏覽器很容易受到XSS、CSFR等攻擊。
  2. 跨域解決方案
    (1) 通過json跨域
    我們可以通過動態去創建script,再請求一個帶參網址實現跨域通信;
    jquery ajax:
$.ajax({
      url:'http://www.xxx.com',
      type:'get',
      datatype:'jsonp',
      //自定義回調函數
      jsonpCallback:'dataCallback'
      data:{ }
})

注意jsonp的缺點:只能實現get一種請求。

(2) WebSocket協議跨域
WebSocket protocol是HTML5一種新的協議,實現了瀏覽器與服務器全雙工通信,同時允許跨域通信

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章