Vue項目經過Hbuild打包爲APP後,靜態文件正常顯示,但並無像開發時那樣請求到數據。
這是爲何?由於APP並無跨域,不存在跨域一說。
咱們在開發的時候,js在不一樣的域之間進行數據傳輸或通訊,因此會給項目設置代理來跨域
config下的index.js
好比這個ios
proxyTable: { '/api':{ target: 'http://XXX/xxx/v3', changeOrigin: true, pathRewrite: { '^/api': '' } } }
在開發時這樣作是沒錯的,但咱們在打包時就不用設置這個跨域了,打包前直接將這個跨域註釋掉,而後將API請求地址改成絕對地址。例如這樣axios
let SwipeImg = () => axios({ // url: 'api/basic/advert/lists', url: 'http://xxx.xxx.xx.xx/api/v3/basic/advert/lists', params: { auth_key: key } })
改好以後在經過Hbuild打包後,APP數據就顯示正常了
這裏要注意的是,我將打包後的APP放在夜神模擬器裏,數據顯示仍是不正常,但放在本身手機裏就顯示正常,這點要注意api