您好,登錄后才能下訂單哦!
今天在開發過程中遇到一個問題,拿到了一套vue代碼,計劃對這套代碼的部分樣式進行調整,Java后端代碼已經寫好并且部署到了線上。這時命令行運行vue項目時訪問會受限,取不下數據來,遇到了跨域訪問失敗的問題,這時可以怎么做呢?
首先,要了解什么叫跨域訪問?
跨域,指的是瀏覽器不能執行其他網站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器對javascript施加的安全限制。
所謂同源是指,域名,協議,端口均相同,舉個例子:
http://www.123.com/index.html 調用 http://www.123.com/server.php (非跨域)
http://www.123.com/index.html 調用 http://www.456.com/server.php (主域名不同:123/456,跨域)
http://abc.123.com/index.html 調用 http://def.123.com/server.php (子域名不同:abc/def,跨域)
http://www.123.com:8080/index.html 調用 http://www.123.com:8081/server.php (端口不同:8080/8081,跨域)
http://www.123.com/index.html 調用 https://www.123.com/server.php (協議不同:http/https,跨域)
請注意:localhost和127.0.0.1雖然都指向本機,但也屬于跨域。
知道了跨域的概念之后我們如何解決他呢?
我這里的情況是這樣的,后端在服務器上,但是vue在本地運行,網上有很多的跨域代理工具,但是都比較麻煩。因為vue-cli 腳手架工具已經幫我們做了處理,只需要稍微配置一下,就可以輕松解決跨域問題。
我們打開 config/index.js 文件,找到以下代碼:
在proxyTable: {}配置代理,配置信息如下:
proxyTable: { '/project_dzff/': { target: 'http://120.92.45.71/', //域名 secure: false, changeOrigin: false, } },
代理配置之后,再去修改項目的調用接口地址的信息,讓他調用我們配置好的東西。
serverRoot: env === 'development' ? '/project_dzff' : env === 'production' ? '/project_dzff' : 'https://debug.url.com'
這里由原先訪問http://120.92.45.71/調整為訪問project_deff,即我們自己定義的名字了。
這時我們運行vue項目,如圖:
這時基本上訪問已經成功代理到本地了,這時就可以使用本地的vue項目訪問服務器端的數據了!
總結
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。