這裏是修真院前端小課堂,每篇分享文從html
【背景介紹】【知識剖析】【常見問題】【解決方案】【編碼實戰】【擴展思考】【更多討論】【參考文獻】前端
八個方面深度解析前端知識/技能,本篇分享的是:node
【跨域解決方案之nginx 】nginx
你們好,我是IT修真院北京總院第24期的學員,一枚正直純潔善良的web程序員
今天給你們分享一下,修真院官網js任務5,深度思考中的知識點——跨域解決方案之nginx
1.背景介紹
什麼是跨域以及產生緣由git
跨域是指a頁面想獲取b頁面資源,若是a、b頁面的協議、域名、端口、子域名不一樣,或是a頁面爲ip地址,b頁面爲域名地址,所進行的訪問行動都是跨域的,而瀏覽器爲了安全問題通常都限制了跨域訪問,也就是不容許跨域請求資源。程序員
什麼是同源策略?github
同源策略/SOP(Same origin policy)是一種約定,由Netscape公司1995年引入瀏覽器,它是瀏覽器最核心也最基本的安全功能,若是缺乏了同源策略,瀏覽器很容易受到XSS、CSFR等攻擊。所謂同源是指"協議+域名+端口"三者相同,即使兩個不一樣的域名指向同一個ip地址,也非同源。web
同源策略限制如下幾種行爲:json
常見跨域場景跨域
2.知識剖析
跨域解決方案
一、 經過jsonp跨域
二、 document.domain + iframe跨域
三、 location.hash + iframe
四、 window.name + iframe跨域
五、 postMessage跨域
六、 跨域資源共享(CORS)
七、 nginx代理跨域
八、 nodejs中間件代理跨域
九、 WebSocket協議跨域
3.常見問題
如何跨域
4.解決方案
nginx反向代理解決跨域
五、編碼實戰
首先找到nginx.conf
自定義本地的url請求規則 ,如 http://www.720ui.com/blog 則對應要nginx服務轉發到 http://blog.720ui.com 。
server
{
listen 80;
server_name www.720ui.com;
location ^~ /blog/ {
proxy_pass http://blog.720ui.com/;
}
}
6.拓展思考
還有什麼解決方案
jsonp,利用了src屬性能夠跨域的特性
7.參考文獻
參考一:跨域問題解決方案(Nginx)
密碼: 9epr