JSONP、CORS、NGINX跨域方案詳解

什麼是跨域

在JavaScript中,有一個很重要的安全性限制,被稱為“Same-Origin Policy”(同源策略)。它是一種約定,由Netscape公司1995年引入瀏覽器,是瀏覽器最核心也最基本的安全功能,如果缺少了同源策略,瀏覽器很容易受到XSS、CSFR等攻擊。所謂同源是指"協議+域名+端口"三者相同,即便兩個不同的域名指向同一個ip地址,也非同源。

常用的幾種跨域解決方案

  • JSONP
  • CORS策略
  • Nginx代理跨域

跨域的原理解析及實現方法

  1. 通過JSONP(JSON with padding)跨域

通常為了減輕web服務器的負載,我們把js、css,img等靜態資源分離到另一臺獨立域名的服務器上,在html頁面中再通過相應的標籤從不同域名下加載靜態資源,而被瀏覽器允許,基於此原理,我們可以通過動態創建script,再請求一個帶參網址實現跨域通信。

而jsonp就是利用了script標籤的src屬性是沒有跨域的限制的,從而達到跨域訪問的目的。因此它的最基本原理就是:動態添加一個

經典前端面試題每日更新,歡迎參與討論,地址:https://github.com/daily-interview/fe-interview。


更多angular1/2/4/5、ionic1/2/3、react、vue、微信小程序、nodejs等技術文章、視頻教程和開源項目,請關注微信公眾號——全棧弄潮兒

JSONP、CORS、NGINX跨域方案詳解


分享到:


相關文章: