html - 弱弱的問一個跨域的問題
問題描述
比如,同一臺服務器上,網站主目錄綁定到www.domain.com上,網站后臺綁定到www.domain.com:8080上。
即便端口不同也會被當做跨域吧? 感覺這種情況跨域有點冤,而且POST也沒有不跨域方便吧?
各位大大有什么好辦法解決一下這個問題嗎,能通過某些設置而讓網站和后臺之間不跨域嗎?這種網站和后臺分離的方式遲早要面對跨域的問題,是嗎?
問題解答
回答1:跨站的解決方案很多,常見的是JSONP,代理轉發,還有就是HTLM5的Allow Orgin允許跨站訪問的新功能。
你這種情況,建議在網站的Ngingx設置個代理,轉發到網站后臺就可以了,配置大概是這樣的:
upstream backend { server backend1.example.com:8080;}server { location /api {proxy_pass http://backend; }}
在前端頁面,通過ajax訪問的地址為:http://www.example.com/api/xxx
回答2:端口不同本來就是不同的站點,站點與站點之間就是跨域啊!通過分開前后臺,是可以讓網站比較安全,也可以分端維護,我覺得沒必要去用前端跨域請求后臺,這樣會把后臺曝露了,而且程序設計上也不應該通過前端跨域取數據吧!除非你數據庫是文件型數據庫Access或sqlite這類,那就是你設計上的問題,請求數據只需要有數據連接就可以的了。沒必要跨域。
相關文章:
1. node.js - 如何在服務器部署vuejs項目?2. 百度云加速正常 自己搭建的NGINX就出現400 本妹子求大神3. 為什么微信內置瀏覽器用$_COOKIE取不到值?4. vue 子組件watch監聽不到prop的解決5. 前端 - css3輪換圖片到第一張圖片時都要閃一下怎么改進?6. css - 關于移動端定位position準確的問題?7. javascript - ionic2 input autofocus 電腦成功,iOS手機鍵盤不彈出8. angular.js - Angular開發的單頁面應用,如何正確地實現在微信里的網頁授權和調用js sdk9. css - html文件上傳到虛擬主機后使用谷歌瀏覽器打開html元素的寬度變大10. javascript - 請問這段 el && fn.call(el, e, el)代碼這么寫什么意思?
