跨域
05-28
跨域
來自專欄 前端
為什麼會產生跨域?
scheme、host、port不同
常用的跨域方案有哪些?
1、瀏覽器原生標籤,img/link/script不受跨域限制。
img:常用於前端點擊流上報。
script:衍生出了jsonp的方案。
jsonp的具體實現過程?後台需要提供一個jsonp介面,請求方式是GET。這個介面接收一個callback作為參數,是一個函數名稱。介面做完相應的業務處理後,返回一個字元串,這個字元串類似於callback({ k1: v1, k2: v2 }),callback需要替換為接收到的函數名,參數傳入相應的數據。前端一旦要發起jsonp請求,需要註冊一個全局函數,並把函數名作為jsonp介面的callback參數,動態創建一個script標籤,設置src為組裝好的url,把script標籤掛載到文檔,等待script標籤載入完後,會調用之前註冊好的全局函數,函數參數便是後端返回的數據。缺點:jsonp只能用於GET介面。
2、後端代理。
// TODO
3、CORS。
// TODO
4、postMessage和iframe結合。
// TODO
5、window.name和iframe結合。
// TODO
推薦閱讀:
※狼叔:Node.js 源碼是如何執行的?| Live 預告
※如何用 55 行代碼實現一個簡單的 View 框架
※對於《2016年前端技術觀察》的一些看法
※圖片模糊效果
※認識node核心模塊--從Buffer、Stream到fs
TAG:前端開發 |