今天在開發過程中遇到一個問題,拿到了一套vue代碼,計劃對這套代碼的部分樣式進行調整,Java后端代碼已經寫好并且部署到了線上。這時命令行運行vue項目時訪問會受限,取不下數據來,遇到了跨域訪問失敗的問題,這時可以怎么做呢?
成都創新互聯公司專注為客戶提供全方位的互聯網綜合服務,包含不限于做網站、網站制作、潼南網絡推廣、重慶小程序開發、潼南網絡營銷、潼南企業策劃、潼南品牌公關、搜索引擎seo、人物專訪、企業宣傳片、企業代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;成都創新互聯公司為所有大學生創業者提供潼南建站搭建服務,24小時服務熱線:13518219792,官方網址:www.cdcxhl.com
首先,要了解什么叫跨域訪問?
跨域,指的是瀏覽器不能執行其他網站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器對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項目訪問服務器端的數據了!
總結