浅显易懂的跨域理解
前言
關于跨域,在此之前,我的理解一直都是如面試題中解答的那樣,兩個網站之間協議、域名、端口不同則不能相互訪問數據就是跨域。然而在實際項目中,對于聯調過程的代理總一知半解,在各種拋根問底后做一下記錄并分享給和我一樣的同學。
什么是跨域
跨域是指瀏覽器端為了安全實施JavaScript而限制其不能執行其他網站的腳本。是由瀏覽器的同源策略導致的。
注意點:是瀏覽器行為,服務端不存在跨域。
什么是同源策略
即請求中的url地址,必須與瀏覽器上的url地址處于同域上,也就是域名,端口,協議相同。 同源策略限制了如下行為:
- Cookie、LocalStorage 和 IndexDB 無法讀取
- DOM 和 JS 對象無法獲取
- Ajax請求發送不出去
注意點:localhost 調用 127.0.0.1 不符合同源策略,跨域
實際開發中聯調過程解決跨域的原理
在開發中,一般會使用webpack-dev-server啟動一個使用express的Http服務器。然后配置請求代理,在瀏覽器請求發出后本地服務器攔截并指向配置的后端資源服務器,拿到數據后返回。
其他解決跨域的辦法
這里不做記錄,手動搜索可找到很多文章詳解。按需查找使用。
幫助理解,推薦如下:
- 詳解跨域:www.imooc.com/article/219…
- webpack與webpack-dev-server的區別:blog.csdn.net/weixin_4242…
- webpack-dev-server用法配置:www.cnblogs.com/zero7room/p…
blog.csdn.net/u012045958/…
拙略見解,如有瑕疵請評論指教
總結
- 上一篇: python模拟地面网管接收数据
- 下一篇: 洞悉物联网发展1000问之ZigbeeP