【nginx學習】nginx反向代理前端跨域問題
阿新 • • 發佈:2018-11-12
本地ip name str host jsonp 註意 access origin 跨域問題 * 跨域簡介:
3、window.location.hash+iframe 同樣需要目標服務器作處理。
4、html5的 postMessage+ifrme 這個也是需要目標服務器或者說是目標頁面寫一個postMessage,主要側重於前端通訊。
5、CORS 需要服務器設置header :Access-Control-Allow-Origin。
6、nginx反向代理 可以不用目標服務器配合,需要搭建一個中轉nginx服務器,用於轉發請求。
跨域是指a頁面想獲取b頁面資源,如果a、b頁面的協議、域名、端口、子域名不同,所進行的訪問行動都是跨域的,而瀏覽器為了安全問題一般都限制了跨域訪問,也就是不允許跨域請求資源。
- 註意:跨域限制訪問,其實是瀏覽器的限制。
- 跨域類型:
URL | 說明 | 是否跨域 |
---|---|---|
http://www.cnblogs.com/a.js http://www.a.com/b.js | 不同域名 | 是 |
http://www.a.com/lab/a.js http://www.a.com/script/b.js | 同一域名下不同文件夾 | 否 |
http://www.a.com:8000/a.js http://www.a.com/b.js | 同一域名,不同端口 | 是 |
http://www.a.com/a.js https://www.a.com/b.js | 同一域名,不同協議 | 是 |
http://www.a.com/a.js http://70.32.92.74/b.js | 域名和域名對應ip | 是 |
http://www.a.com/a.js http://script.a.com/b.js | 主域相同,子域不同 | 是(cookie不可訪問) |
http://www.a.com/a.js http://a.com/b.js | 同一域名,不同二級域名(同上) | 是 |
* 跨域常見解決方法:
1、jsonp 需要目標服務器配合一個callback函數。
2、window.name+iframe 需要目標服務器響應window.name。
4、html5的 postMessage+ifrme 這個也是需要目標服務器或者說是目標頁面寫一個postMessage,主要側重於前端通訊。
5、CORS 需要服務器設置header :Access-Control-Allow-Origin。
6、nginx反向代理 可以不用目標服務器配合,需要搭建一個中轉nginx服務器,用於轉發請求。
* 跨域實例:
A網站部署在:http://localhost:81 即本地ip端口81上;B網站部署在:http://localhost:82 即本地ip端口82上。現在A網站的頁面想去訪問B網站的信息,
解決方法:nginx反向代理解決跨域
【nginx學習】nginx反向代理前端跨域問題