下面我就為大家分享一篇vue-cli開發時,關於ajax跨域的解決方法,具有很好的參考價值,希望對大家有所幫助。
目的:使用vue-cli建構的項目,在開發時,想要存取後台介面取得數據,這時就會出現跨網域問題。
在config/index.js中進行如下設定
#【即在進行ajax請求時,位址中任何以/api開頭的請求位址都被解析為目標位址,target就是你想要的後台介面位址】
proxyTable: { ‘/api': { target: ‘https://188.188.18.8‘, changeOrigin: true, pathRewrite: { ‘^/api': ” } } } “`
vue-resource呼叫範例
this.$http.get('/api/v4/user/login', [options]).then(function(response){ // 响应成功回调 }, function(response){ // 响应错误回调 });
axios呼叫範例
axios({ method: 'get', headers: {'Accept': '*/*'}, url: '/api/v4/user/login', data: options }) .then(function (response) { console.log(response.data) }) .catch(function (error) { console.log(error) })
解說原理:
# 在設定中: target: 'https://188.188.18.8'
上方vue-resource範例中第一個參數為: /api/v4/user/login
就會被本機伺服器自動解析為https://188.188.18.8/v4/user/login而這個正式我們需要的地址。
跨網域原則(本機檔案假裝在遠端伺服器上):
透過瀏覽器開啟頁面,當發起要求時:本機伺服器的位址(通常是localhost:8080或127.0.0.1 :8080)會收到這個請求,接下來發現這個請求位址中含有字串/api,那麼本機伺服器會將請求位址變成https://188.188.18.8/v4/ (設定位址) user/login(調用方法處的詳細地址)。
同時本機伺服器的位址會由localhost:8080 變成https://188.188.18.8/v4/,結果就是:
我們本地的檔案會被認為是放在目標位址(https://188.188.18.8/v4/)伺服器上的,目前伺服器上的檔案請求伺服器其他東西,自然就不是跨網域了。
上面是我整理給大家的,希望今後對大家有幫助。
相關文章:
#以上是vue-cli開發時,關於ajax跨域的解決方法(強烈建議)的詳細內容。更多資訊請關注PHP中文網其他相關文章!