VUE 呼叫 flask 介面,解決跨域問題

tongyuruo發表於2020-12-04

最近做一個簡單的系統,採用了前端VUE,後端flask的方式。但是當vue呼叫flask的時候,跨域問題報錯了。記錄一下解決方案
1、flask 裡面釋出介面/get_table_data
2、vue main.js中引入axios,並設定baseURL :
import axios from 'axios'
axios.defaults.baseURL = '/api' // 開發本地代理
Vue.prototype.$axios = axios

3、vue2.0的config/index.js中,修改proxyTable為如下:
proxyTable: {
'/api': { //代理地址
target: 'http://127.0.0.1:5000/', //需要代理的地址, 實際生產環境需要訪問的地址
changeOrigin: true, //是否跨域
pathRewrite: {
'/api': '/' //本身的介面地址沒有 '/api' 這種通用字首,所以要rewrite,如果本身有則去掉
}
}
},

4、vue檔案中,呼叫方法的如下:

export default { data () { return { tableData: [] } }, created () { const url = `/get_table_data` this.$axios.get(url).then((response) => { console.info(response.data.data) this.tableData = response.data.data }).catch((response) => { console.log(response) }) } }

5、重啟vue。

6、遇到的問題:
(1)設定代理後,原http://127.0.0.1:5000http://localhost:8080/api/get_table_data的請求,會顯示呼叫地址為:
代理為api,只是vue內部處理url的字首,不需要釋出的url改成這個字首。

相關文章