首頁  >  文章  >  web前端  >  vue-cli開發時,關於ajax跨域的解決方法(強烈建議)

vue-cli開發時,關於ajax跨域的解決方法(強烈建議)

亚连
亚连原創
2018-05-22 09:31:321727瀏覽

下面我就為大家分享一篇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/)伺服器上的,目前伺服器上的檔案請求伺服器其他東西,自然就不是跨網域了。

上面是我整理給大家的,希望今後對大家有幫助。

相關文章:

實作ajax拖曳上傳檔案(附有程式碼)

透過Ajax實現動態載入折線圖的方法(圖文教學)

jquery ajax實作檔案上傳功能(附程式碼)

#

以上是vue-cli開發時,關於ajax跨域的解決方法(強烈建議)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn