摘要:跨域總結跨域思路跨域解決方案一般分為兩種前端解決,后端解決前端解決方案通過前端解決的思想就是,通過設置中間件把跨域的請求轉發一下,其實就是反向代理,比如想要訪問豆瓣的接口很,但是如果請求的是就不存在跨域反向代理就是截取之后重寫請求將請求轉發
跨域總結 1.跨域思路
跨域解決方案一般分為兩種:前端解決,后端解決
1.1 前端解決方案通過前端解決的思想就是,通過設置中間件把跨域的請求轉發一下,其實就是反向代理,比如 http://1.2.3.4:8099 想要訪問豆瓣的接口
http://www.douban.com/v?a=1很...,但是如果請求的是http://1.2.3.4:8099/api/v?a=1 就不存在跨域
反向代理就是截取 /api 之后重寫請求 將請求轉發到http://www.douban.com/ 服務器上
疑問后續更新:關于轉發,到底是幾次請求
vue react等項目 可以使用 http-proxy-middleware
普通項目 就是以下介紹的 本地安裝nginx 反向代理跨域
1.2 后端解決方案后端解決方案,一般是需要后端參與
jsonp 回調函數
CORS 需要后端加頭部 但并不是所有瀏覽器都支持
純后端配置nginx反向代理解決跨域
以下介紹
前端解決方案:http-proxy-middleware
后端解決方案:nginx 反向代理
2.前端跨域解決方案 http-proxy-middleware 2.1 搭建環境# vue-cli 腳手架 # 安裝axios 和 跨域支持的包 http-proxy-middleware npm i axios --save-dev npm install --save-dev http-proxy-middleware #vue-cli 已經把http-proxy-middleware寫在項目依賴里面了2.2 正常請求存在跨域
# 在豆瓣API上隨便找一個接口做測試,以一下接口為例 https://api.douban.com/v2/book/1220562
下圖 瀏覽器訪問接口請求成功
Snip20180806_8.png
下圖 vue項目中請求接口
Snip20180806_14.png
下圖 代碼中訪問接口 存在跨域
Snip20180806_9.png
下圖 使用http-proxy-middleware,配置 config/index.js
Snip20180806_11.png
下圖 跨域成功
Snip20180806_10.png
在虛擬機上找到設置,選擇共享文件夾
mac vmware想使用共享文件必須安裝vmware-tools
2.1 在虛擬機關閉狀態下,選擇虛擬機,安裝vmware-tools
2.2 在ubuntu中直接使用 apt 安裝 之后會介紹
安裝vmware-tools之后查看 mnt文件下是否有hgfs文件
3.1 有hgfs說明已經有共享文件的掛載點
3.2 如果沒有hgfs文件 說明安裝的vm-tools可能和ubuntu版本有沖突
設置共享目錄
# 查看當前設置的共享文件 #sudo vmware-hgfsclient # 上述命令可能由于沒有安裝包報錯,所以先安裝一下包 # apt-get install open-vm-tools # apt-get install open-vm-tools-desktop # apt-get install open-vm-tools-dkms # 自己手動創建hgfs并掛載 # mkdir /mnt/hgfs # vmhgfs-fuse .host:/ /mnt/hgfs # 使用文件查看是否有權限進入 /mnt/hgfs 如果沒有使用一下命令 # sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o nonempty # 每次進入系統都需要自己mount 可以配置/etc/fstab .host:/ /mnt/hgfs vmhgfs defaults 0 0
完成以上步驟,你會發現 /mnt/hgfs/XXX XX 為你設置的共享目錄
3.2 配置nginx 3.2.1 修改nginx默認服務器根目錄修改配置文件位置:vim /etc/nginx/sites-available/default
location / { # 配置共享文件的位置 root /mnt/hgfs/ftp; # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; }3.2.2 訪問http://XXX 查看配置是否生效(403錯誤)
403錯誤可能有兩種情況,不要誤以為真的沒有權限
配置的共享文件下是否有indx.html,沒有的話會報錯403 Forbidden
真的沒有權限 需要修改一下配置 chrod 修改權限
解決Nginx出現403 forbidden
相當良心的解決方案
3.2.3 配置反向代理我用的豆瓣隨便的一個接口來測試的
location /api{ # 重寫 rewrite ^.+api/?(.*)$ /$1 break; # 配置代理 proxy_pass https://api.douban.com; }3.3 測試跨域
3.4 瀏覽器測試跨域,跨域成功Title
Snip20180805_4.png
Snip20180805_5.png
Snip20180805_6.png
Snip20180805_7.png
安裝vmtools之后在/mnt目錄下沒有hgfs文件夾
vmware設置共享文件夾
虛擬機找不到/mnt/hgfs掛載目錄
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/40063.html
摘要:就鹿晗宣布戀情導致微博宕機事件淺談大型網站高可用性架構中午吃飯刷著刷著微博發現微博突然掛了。用戶在使用瀏覽器訪問一個網站時需要先通過協議向服務器發送請求,之后服務器返回文件與響應信息。 webpack:從入門到真實項目配置 自從出現模塊化以后,大家可以將原本一坨代碼分離到個個模塊中,但是由此引發了一個問題。每個 JS 文件都需要從服務器去拿,由此會導致加載速度變慢。Webpack 最主...
摘要:整理收藏一些優秀的文章及大佬博客留著慢慢學習原文協作規范中文技術文檔協作規范阮一峰編程風格凹凸實驗室前端代碼規范風格指南這一次,徹底弄懂執行機制一次弄懂徹底解決此類面試問題瀏覽器與的事件循環有何區別筆試題事件循環機制異步編程理解的異步 better-learning 整理收藏一些優秀的文章及大佬博客留著慢慢學習 原文:https://www.ahwgs.cn/youxiuwenzhan...
摘要:手把手教你做個人火的時候,隨便一個都能賺的盆滿缽滿,但是,個人沒有服務端,沒有美工,似乎就不能開發了,真的是這樣的嗎秘密花園經典的中文手冊。涵蓋前端知識體系知識結構圖書推薦以及入門視頻教程,全的簡直不要不要的了。 JavaScript 實現點擊按鈕復制指定區域文本 html5 的 webAPI 接口可以很輕松的使用短短的幾行代碼就實現點擊按鈕復制區域文本的功能,不需要依賴 flash。...
摘要:跨域總結跨域思路跨域解決方案一般分為兩種前端解決,后端解決前端解決方案通過前端解決的思想就是,通過設置中間件把跨域的請求轉發一下,其實就是反向代理,比如想要訪問豆瓣的接口很會有跨域問題,但是如果請求的是就不存在跨域反向代理就是截取之后的請求 跨域總結 1.跨域思路 跨域解決方案一般分為兩種:前端解決,后端解決 1.1 前端解決方案 通過前端解決的思想就是,通過設置中間件把跨域的請求轉發...
摘要:把數據包裹在一個客戶端聲明的本地的回調函數中,這樣可以動態加載一個跨域服務器數據。在本地聲明這個動態中的回調函數名稱,并且定義該函數,然后通過參數傳遞到服務器。 為什么要跨域 我們都知道在瀏覽器地址欄輸入地址的時候可以隨便訪問一個頁面,但是如果你在ajax請求中發出一個xhr請求那么因為瀏覽器安全策略只有同源的服務器才能處理。這就是同源策略 要求協議/域名/端口三者完全一致才能訪問 ...
閱讀 3077·2023-04-26 00:53
閱讀 3522·2021-11-19 09:58
閱讀 1693·2021-09-29 09:35
閱讀 3279·2021-09-28 09:46
閱讀 3852·2021-09-22 15:38
閱讀 2692·2019-08-30 15:55
閱讀 3006·2019-08-23 14:10
閱讀 3822·2019-08-22 18:17