html - 弱弱的問一個跨域的問題
問題描述
比如,同一臺服務(wù)器上,網(wǎng)站主目錄綁定到www.domain.com上,網(wǎng)站后臺綁定到www.domain.com:8080上。
即便端口不同也會被當(dāng)做跨域吧? 感覺這種情況跨域有點(diǎn)冤,而且POST也沒有不跨域方便吧?
各位大大有什么好辦法解決一下這個問題嗎,能通過某些設(shè)置而讓網(wǎng)站和后臺之間不跨域嗎?這種網(wǎng)站和后臺分離的方式遲早要面對跨域的問題,是嗎?
問題解答
回答1:跨站的解決方案很多,常見的是JSONP,代理轉(zhuǎn)發(fā),還有就是HTLM5的Allow Orgin允許跨站訪問的新功能。
你這種情況,建議在網(wǎng)站的Ngingx設(shè)置個代理,轉(zhuǎn)發(fā)到網(wǎng)站后臺就可以了,配置大概是這樣的:
upstream backend { server backend1.example.com:8080;}server { location /api {proxy_pass http://backend; }}
在前端頁面,通過ajax訪問的地址為:http://www.example.com/api/xxx
回答2:端口不同本來就是不同的站點(diǎn),站點(diǎn)與站點(diǎn)之間就是跨域??!通過分開前后臺,是可以讓網(wǎng)站比較安全,也可以分端維護(hù),我覺得沒必要去用前端跨域請求后臺,這樣會把后臺曝露了,而且程序設(shè)計上也不應(yīng)該通過前端跨域取數(shù)據(jù)吧!除非你數(shù)據(jù)庫是文件型數(shù)據(jù)庫Access或sqlite這類,那就是你設(shè)計上的問題,請求數(shù)據(jù)只需要有數(shù)據(jù)連接就可以的了。沒必要跨域。
相關(guān)文章:
1. docker-machine添加一個已有的docker主機(jī)問題2. css - 關(guān)于div自適應(yīng)問題,大家看圖吧,說不清3. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””4. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?5. angular.js使用$resource服務(wù)把數(shù)據(jù)存入mongodb的問題。6. dockerfile - [docker build image失敗- npm install]7. docker-compose中volumes的問題8. python - django如何每次調(diào)用標(biāo)簽的時候都取隨機(jī)數(shù)據(jù)9. linux - mysql源碼安裝遇到的問題10. javascript - Vue 自定義控件v-model雙向綁定
