前後端分離的情況下, 跨域問題有沒有好的解決方案?

自己個人正在做的一個後台的管理系統(SPA), Vue做的前端, 後台是Java, 針對在同一域名下的不同子域名的跨域問題, 或者不同域名下的跨域問題, 各有什麼好的解決方案呢?


https://www.google.com.hk/search?q=%E5%89%8D%E7%AB%AF%E8%B7%A8%E5%9F%9Foq=%E5%89%8D%E7%AB%AF%E8%B7%A8%E5%9F%9Faqs=chrome..69i57j69i61l2j69i60j69i61j69i65.1826j0j7sourceid=chromeie=UTF-8


CORS 是最標準的跨域解決方案。


CORS吧,IE低版本不支持,不過既然是後台管理系統和Vue,應該也不在考慮範圍內。


跨域無非就那些常見的方法,幫你總結了一些:

javascript跨域的幾種方法

總結一些跨域的方式

應該足夠用了


其實可以用nginx做web伺服器,將請求轉發,就沒有跨域的問題了。

location /xx {

proxy_pass xxxxx;

proxy_cookie_path /xx /;

}


看起來cros應該就是標準答案了。。


nginx反向代理解決所有問題


常用的跨域方法無法就是那幾種。

列兩個給你參考一下:
1,CORS
在後端設置響應頭,把你需要運行訪問的域名加入加入Access-Control-Allow-Origin中。

2,jsonp
把後端根據請求,構造json數據,並返回,前端用jsonp跨域。

詳情請看:如何跨域


默認情況下,跨域請求不提供憑據(cookie,HTTP認證以及客戶端SSL證明等)。通過將withCredentials屬性設置為true,就可以指定某個請求應該發送憑據。(搬運自HTTP權威指南)


CORS實現跨域時授權問題(401錯誤)的解決

Spring通過CORS協議解決跨域問題

解決了跨域時出現的403,401錯誤。後端使用的是spring框架但是原理是相同的,也給出了其他伺服器環境下的參考配置。

這段時間裡做的一個前後端分離的項目的時候,查資料總結的關於跨域問題的一些解決方案。也附帶了許多有參考價值的文章鏈接,希望對你有幫助。


推薦閱讀:

TAG:前端開發 | 跨域 | 單頁 | Vuejs | SPASingle-PageApp |