跨域解決方案通常分爲兩種:前端解決,後端解決javascript
經過前端解決的思想就是,經過設置中間件把跨域的請求轉發一下,其實就是反向代理,
好比 http://1.2.3.4:8099 想要訪問豆瓣的接口 http://www.douban.com/v?a=1很...
會有跨域問題,可是若是請求的是http://1.2.3.4:8099/api/v?a=1 就不存在跨域html
反向代理就是截取 /api 以後的請求 轉發到http://www.douban.com/ 服務器上前端
後端解決方案,通常是須要後端參與vue
2.1 在虛擬機關閉狀態下,選擇虛擬機,安裝vmware-tools
2.2 在ubuntu中直接使用 apt 安裝 以後會介紹java
3.1 有hgfs說明已經有共享文件的掛載點
3.2 若是沒有hgfs文件 說明安裝的vm-tools可能和ubuntu版本有衝突react
# 查看當前設置的共享文件 #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 爲你設置的共享目錄jquery
修改配置文件位置:vim /etc/nginx/sites-available/defaultnginx
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; }
403錯誤可能有兩種狀況,不要誤覺得真的沒有權限ajax
至關良心的解決方案
我用的豆瓣隨便的一個接口來測試的
location /api{ # 重寫 rewrite ^.+api/?(.*)$ /$1 break; # 配置代理 proxy_pass https://api.douban.com; }
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <script src="jquery.js"></script> <title>Title</title> </head> <body> <div> <button id="btn1">測試跨域</button> <div id="content"></div> </div> <script type="text/javascript"> $(document).ready(function () { $("#btn1").click(function () { // 全部豆瓣請求都以 /api 開始 注意相對絕對路徑 $.get("/api/v2/book/1220562", function (data, status) { alert("數據: " + JSON.stringify(data) + "\n狀態: " + status); $("#content").html(JSON.stringify(data)) }); }); }); </script> </body> </html>
跨域解決方案通常分爲兩種:前端解決,後端解決
經過前端解決的思想就是,經過設置中間件把跨域的請求轉發一下,其實就是反向代理,
好比 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/ 服務器上
後端解決方案,通常是須要後端參與
2.1 在虛擬機關閉狀態下,選擇虛擬機,安裝vmware-tools
2.2 在ubuntu中直接使用 apt 安裝 以後會介紹
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 爲你設置的共享目錄
修改配置文件位置: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; }
403錯誤可能有兩種狀況,不要誤覺得真的沒有權限
至關良心的解決方案
我用的豆瓣隨便的一個接口來測試的
location /api{ # 重寫 rewrite ^.+api/?(.*)$ /$1 break; # 配置代理 proxy_pass https://api.douban.com; }
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <script src="jquery.js"></script> <title>Title</title> </head> <body> <div> <button id="btn1">測試跨域</button> <div id="content"></div> </div> <script type="text/javascript"> $(document).ready(function () { $("#btn1").click(function () { // 全部豆瓣請求都以 /api 開始 注意相對絕對路徑 $.get("/api/v2/book/1220562", function (data, status) { alert("數據: " + JSON.stringify(data) + "\n狀態: " + status); $("#content").html(JSON.stringify(data)) }); }); }); </script> </body> </html>
Snip20180805_2.png
Snip20180805_3.png
Snip20180805_4.png
Snip20180805_5.png
Snip20180805_6.png
Snip20180805_7.png